更新数据库MS Access vb.net中的数据

时间:2013-12-06 02:01:19

标签: ms-access vb.net-2010 updating

Private Sub Exe1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    txtScore.Enabled = False
    con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\SJMI.Alfie\Documents\Visual Studio 2010\Projects\WindowsApplication2\WindowsApplication1\Accounts.accdb"
    con.Open()
End Sub
Private Sub Submit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Submit.Click

    myqry = "UPDATE Accounts SET StudNo=?, Exer1=? WHERE Number=?"
    Cmd = New OleDbCommand(myqry, con)
    Cmd.Parameters.AddWithValue("?", txtScore.Text)
    Cmd.Parameters.AddWithValue("?", myID.Text)
    Cmd.ExecuteNonQuery()

    txtScore.Text = score.ToString
    con.Close()
    MsgBox("Thank You!!")
    Login.Show()
    Me.Hide()

End Sub

点击提交按钮后没有任何反应。

1 个答案:

答案 0 :(得分:2)

当您将OleDb与Access一起使用时,您必须按照它们在SQL语句中出现的顺序提供参数值。

此外,您的UPDATE包含3个参数,但您的代码仅提供2个参数值。您需要添加第三个参数值,但我不知道它来自何处。

我认为您需要接近这一点,并替换适用于我的 [Number for Number parameter] 占位符的内容。

myqry = "UPDATE Accounts SET StudNo=?, Exer1=? WHERE [Number]=?"
Cmd = New OleDbCommand(myqry, con)
Cmd.Parameters.AddWithValue("?", myID.Text)
Cmd.Parameters.AddWithValue("?", txtScore.Text)
Cmd.Parameters.AddWithValue("?", [value for Number parameter])
Cmd.ExecuteNonQuery()

注意我将字段名称​​ Number 括在方括号中,因为它是reserved word