使用vb.net更新微软访问记录

时间:2013-02-22 16:43:23

标签: vb.net

到目前为止,我一直在尝试更新此记录近3天,在整个互联网上都找不到任何帮助我的东西,尝试了所有解决方案,但没有。

我想更新记录,表单名为search form,表格由8列组成,其中student_id自动编号所以我没有搞砸它

这是我提出的最后一次,它仍然无效,它会突出显示executenonquery(),并在按下按钮后显示错误消息,显示no values where given to one or more required parameters ...

Dim con As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Anton\Desktop\LoginDatabase\Users.mdb")
        con.Open()
       sql = "update salary set [empname]=?,[department]=?,[date1]=?, [accname]= ?,[accnumber]=?,[backname]=?,[rate]=?,[house]=?,[electricity]=?,[travel]=?, [hardship]= ?,[health]=?,[nhif]=?,[nssf]=?,[insurence]=?,[loan]=?,[welfare]=? where empno = ?"
    Dim cmd As New OleDb.OleDbCommand(sql, con)

    cmd.Parameters.AddWithValue("@empname", TextBox2.Text)
    cmd.Parameters.AddWithValue("@department", TextBox3.Text)
    cmd.Parameters.AddWithValue("@date1", DateTimePicker1.Value)
    cmd.Parameters.AddWithValue("@accname", TextBox4.Text)
    cmd.Parameters.AddWithValue("@accnumber", TextBox5.Text)
    cmd.Parameters.AddWithValue("@bankname", TextBox6.Text)
    cmd.Parameters.AddWithValue("@rate", TextBox7.Text)
    cmd.Parameters.AddWithValue("@house", TextBox8.Text)
    cmd.Parameters.AddWithValue("@electricity", TextBox9.Text)
    cmd.Parameters.AddWithValue("@travel", TextBox10.Text)
    cmd.Parameters.AddWithValue("@hardship", TextBox11.Text)
    cmd.Parameters.AddWithValue("@health", TextBox12.Text)
    cmd.Parameters.AddWithValue("@nhif", TextBox13.Text)
    cmd.Parameters.AddWithValue("@nssf", TextBox14.Text)
    cmd.Parameters.AddWithValue("@insurence", TextBox15.Text)
    cmd.Parameters.AddWithValue("@loan", TextBox16.Text)
    cmd.Parameters.AddWithValue("@welfare", TextBox17.Text)
    cmd.Parameters.AddWithValue("@empno", TextBox1.Text)
    Try
        cmd.ExecuteNonQuery()
        cmd.Dispose()
        MsgBox("updated")
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

1 个答案:

答案 0 :(得分:1)

您的错误是您在SQL语句中拼写错误的BankName。 使用“[bankname] =?”。

不要忘记ExecuteNonQuery方法返回一个整数,告诉您有多少记录受到影响。如果在表中找不到ID,它将不会更新,也不会出错,因此声明“已更新”的消息框并非总是如此。

但是,更换表单并使用Visual Studio的本机函数更容易,如下所示:

  1. 打开服务器资源管理器,点击连接到数据库并连接到您的MDB文件。
  2. 从菜单中选择数据>显示数据源。点击添加新数据源按钮。
  3. 在“数据源”窗格中,使用添加新数据源,选择“数据库”,然后选择“数据集”,完成向导并选择“薪资”表。将创建一个数据集并将其放入项目中,您将在“数据源”窗格中看到它。
  4. 在不关闭“数据源”窗格的情况下,创建一个新的空白表单,它将在设计视图中打开。
  5. 点击表格名称“薪水”节点,然后下拉组合框以选择详细信息
  6. 展开表并以相同方式下拉date1列,以确保使用 DateTimePicker 控件。
  7. 将Salary表从数据源窗格拖到新的空白表单上。
  8. 带有导航栏的表单会出现在您眼前。将创建一个由数据库名称组成的新DataSet。

    对于以前的MS Access用户来说,这将是一个更直观的表单,您无需手动创建任何Insert语句,如上面的问题所示。