我正在使用Access数据库和vb.net 2010.我在数据库中创建了一个表,其中包含title,datein,dateout和roomnymber的列。在vb.net 2010中,我做了一个杰出的标题=组合框,datein和dateout = DateTimePicker。当我单击F5时,会发生错误:语句中INSERT INTO语法错误。这是我的代码:
Dim sql As String
sql = "INSERT INTO tcekin(title,firstname,lastname,address,country,company,roomnumber,datein,dateout,rommtype,note)" & "VALUES('" & ComboBox1.Text & _
"','" & txtFirstName.Text & "','" & txtLastName.Text & "','" & txtAddress.Text & "','" & cboCountry.Text & "','" & txtCompany.Text & "','" & txtNumber.Text & _
"','" & dptDateIn.Text & "','" & dptDateOut.Text & "','" & cboRoom.Text & "','" & txtNotes.Text & "')"
cmmd = New OleDbCommand(sql, cnn)
答案 0 :(得分:3)
这里的第一个问题是永远不会从不使用字符串连接来构建您的查询。这样做是这样的:
Dim sql As String = _
"INSERT INTO tcekin " &_
"(title,firstname,lastname,address,country,company,roomnumber,datein,dateout,rommtype,note)" &_
"VALUES(?,?,?,?,?,?,?,?,?,?,?)"
cmmd = New OleDbCommand(sql, cnn)
cmmd.Parameters.AddWithValue("Title", Combobox1.Text)
cmmd.Parameters.AddWithValue("FirstName", txtFirstName.Text)
''# ...
''# ...
这也可以让您更容易发现和避免语法错误,就像您抱怨的那样。