2014-05-16 48 views
1

不知道我在做什么错在这里不断收到“InTime”附近的语法错误。 sqlmodDA.Update(sqlmodDS.Tables(“XXX”)) 一个按钮获取数据(subBindDataGridView)在数据网格视图上显示,然后编辑下一个按钮(CommitChanges)将更改写入数据库。 由于加入了Select命令,无法使用命令生成器。我最好去一个全存储过程解决方案吗?正确的更新命令datagridview W /加入选择命令SQL服务器

Imports System.Data 
Imports System.Data.SqlClient 

Module SQLSever 
Private sqlmodCon As SqlConnection 
Private sqlmodDA As SqlDataAdapter 
Private sqlmodTA As New DataTable 
Private sqlmodDS As New DataSet 


Sub subBindDataGridView() 
    Dim strConStr As String 
    Dim SQLState As String 
    Dim SQLUpdate As String 

    strConStr = "Server=sql2008;Database=TimeClock;User ID=VBA;Password=CanIJustUseDA0;" 
    sqlmodCon = New SqlConnection(strConStr) 
    sqlmodCon.Open() 
    SQLState = "SELECT * FROM dbo.tblEvents INNER JOIN dbo.tblPersons ON dbo.tblEvents.PersonID = dbo.tblPersons.PersonID;" 
    SQLUpdate = "UPDATE dbo.tblEvents" & _ 
       "SET InTime = @InTime, LunchStart = @LunchStart, LunchFinish = @LunchFinish, OutTime = @OutTime WHERE Pkey = @Pkey;" 
    sqlmodDA = New SqlDataAdapter(SQLState, sqlmodCon) 
    sqlmodDA.UpdateCommand = New SqlCommand(SQLUpdate, sqlmodCon) 
    sqlmodDA.UpdateCommand.Parameters.Add("@InTime", SqlDbType.DateTime, 8, "InTime") 
    sqlmodDA.UpdateCommand.Parameters.Add("@LunchStart", SqlDbType.DateTime, 8, "LunchStart").SourceColumn = "LunchStart" 
    sqlmodDA.UpdateCommand.Parameters.Add("@LunchFinish", SqlDbType.DateTime, 8, "LunchFinish").SourceColumn = "LunchFinish" 
    sqlmodDA.UpdateCommand.Parameters.Add("@OutTime", SqlDbType.DateTime, 8, "OutTime").SourceColumn = "OutTime" 
    sqlmodDA.UpdateCommand.Parameters.Add("@PKey", SqlDbType.BigInt, 8, "Pkey").SourceColumn = "PKey" 
    sqlmodDA.Fill(sqlmodDS, "XXX") 
    Form1.DataBox.DataSource = sqlmodDS.Tables("XXX") 
    sqlmodCon.Close() 
End Sub 

Sub CommitChanges() 
    sqlmodCon.Open() 
    sqlmodDA.Update(sqlmodDS.Tables("XXX")) 'Error here 
    sqlmodDS.AcceptChanges() 
    sqlmodCon.Close() 
End Sub 

前端模块

+0

谢谢你修复它,免费啤酒,如果你曾经在费尔班克斯阿拉斯加地区。 –

回答

2

你的语句有 “dbo.tblEvents” 和 “SET” 之间没有空格,所以它是 “dbo.tblEventsSET”。