如何从vb.net存储数据以访问数据库

时间:2010-11-28 04:23:27

标签: vb.net ms-access

我正在使用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)

1 个答案:

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

这也可以让您更容易发现和避免语法错误,就像您抱怨的那样。