2014-05-16 51 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」。