2010-11-28 104 views
0

我正在使用Access数据库和vb.net 2010.我在数据库中创建了一个表,其中包含title,datein,dateout和roomnymber列。在vb.net 2010我做了一个杰出的标题=组合框,datein和dateout = DateTimePicker。当我点击F5时,会发生错误:INSERT INTO语句错误在语句中。这里是我的代码:如何从vb.net存储数据以访问数据库

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

请只有英文。我会马上提供一份谷歌翻译,甚至可能会手动编辑内容,但通过编辑问题以用您自己的语言用英语提问,您可能会做得更好。 – 2010-11-28 04:26:44

+0

owgh ..因为我的英文破碎^^ – existsman 2010-11-28 05:29:48

回答

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) 
''# ... 
''# ... 

这也将更容易发现和避免像你抱怨的语法错误。