2012-07-18 53 views
0

由於某些原因,當我嘗試在插入命令中添加第3列時,我得到了「INSERT INTO語句中的語法錯誤」。錯誤。但是,當我只有2個值插入到2列時,它工作得很好。至於爲什麼會這樣,我有點困惑。 (提示:我可能沒有使用正確的連接字符串,文件類型爲Access 2000數據庫)vb.net不能插入超過2列到.mdb文件

Dim Cmd As OleDbCommand 
    Dim SQL As String 
    Dim objCmd As New OleDbCommand 
    Dim Con = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:\Files\keysDB.mdb") 
    SQL = "INSERT INTO KeyBuffer(keypad, SID, Time) VALUES('1', '1337', '" & DateTime.Now.ToString & "')" 
    Cmd = New OleDbCommand(SQL, Con) 
    Con.Open() 
    objCmd = New OleDbCommand(SQL, Con) 
    objCmd.ExecuteNonQuery() 
    Con.Close() 
+0

你是說如果你把它放在1到3的循環中,它會死在第三次迭代?此外,KeyBuffer表文本字段中的所有三列都是?順便說一句,總是使用參數。 – LarsTech 2012-07-18 15:45:05

+0

在它的當前窗體中,代碼在插入命令上失敗。但是,如果我要使用: 'SQL =「INSERT INTO KeyBuffer(鍵盤,SID)VALUES('1','1337')」' 它會工作得很好。 '時間'字段是日期字段而不是文本。 – 2012-07-18 15:47:48

回答

2

您正在使用的時間字段名可能是一個關鍵詞。嘗試在它周圍放置括號:

"INSERT INTO KeyBuffer(keypad, SID, [Time])... 
+0

謝謝,我在此之前就意識到這是我的'時間'插入問題。這就是我所錯過的。 – 2012-07-18 15:51:24

+0

@BrentHacker這個問題有點令人困惑,因爲字段通常被稱爲列而不是行。樂意效勞。 – LarsTech 2012-07-18 15:52:40

+0

我的不好。我將編輯該問題。 – 2012-07-18 15:54:39