簡體   English   中英

SQL插入錯誤VB.NET

[英]SQL insert into error VB.NET

使用以下代碼運行vb應用程序。 我在“ INSERT INTO” SQL查詢中不斷收到錯誤,有人可以看到我在做什么錯嗎? 這是錯誤-INSERT INTO語句中的語法錯誤。

 connetionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = C:\Users\Dave\Documents\joblist.mdb;"

            connection = New OleDb.OleDbConnection(connetionString)


            Sql = "INSERT INTO jobList (StaffID, staffName, staffLastName, note, fault, section, techID, jobcomplete) VALUES ('" & staffid & "','" & staffFN & "','" & staffLN & "','" & staffNotes & "','" & staffFault & "', '" & staffSection & "', '" & techId & "','" & ava & "')"
            connection.Open()
            oledbAdapter.UpdateCommand = connection.CreateCommand
            oledbAdapter.UpdateCommand.CommandText = Sql
            oledbAdapter.UpdateCommand.ExecuteNonQuery()
            connection.Close()
            Me.JobListTableAdapter.Fill(Me.JoblistDataSet2.jobList)

我假設您正在插入,因此應該使用InsertCommand而不是UpdateCommand屬性。

oledbAdapter.InsertCommand.CommandText = "INSERT INTO jobList (StaffID, staffName, ....

請注意,您可以使用SQL-Injection,而應改用Parameters 您還應該使用Using語句來確保即使出錯也可以關閉連接。

NoteSectionJet SQL中的保留字,您需要使用方括號將它們封裝起來

Sql = "INSERT INTO jobList (StaffID, staffName, staffLastName, [note], fault, " +
      "[section], techID, jobcomplete) VALUES (......)"

這是您語法錯誤的來源,但是.....
除此之外,這里還有很多問題:

  • 正如Tim Schmeiter指出的那樣,您使用update命令而不是insert命令。
  • 您將用戶的輸入文本連接起來以形成sql字符串。 這會導致sql注入攻擊和正確解析文本的問題(撇號,無效日期,無效數字等)
  • staffIDtechID似乎是數據庫中的數字字段,但是您將它們的值放在單引號內,例如字符串。 如果它們是數字,那么您將在此得到另一個可能的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM