Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在vb.net中更新MS Access数据库_Vb.net - Fatal编程技术网

如何在vb.net中更新MS Access数据库

如何在vb.net中更新MS Access数据库,vb.net,Vb.net,您好,我在使用vb.net更新一个表时遇到问题,当我单击按钮更新数据库时,它会给我错误“System.data.OleDb.OledBeException:没有为一个或多个必需参数提供值。” 这是密码 Protected Sub Button6_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button6.Click Dim aConnection As New OleDbConnection

您好,我在使用vb.net更新一个表时遇到问题,当我单击按钮更新数据库时,它会给我错误“System.data.OleDb.OledBeException:没有为一个或多个必需参数提供值。” 这是密码

Protected Sub Button6_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button6.Click
    Dim aConnection As New OleDbConnection
    Dim aCommand As New OleDbCommand
    Dim SQLQuery, aConnectionString As String
    Dim Text As String = TextBox1.Text
    Dim aDataAdapter As New OleDbDataAdapter
    Dim aDataReader As New DataSet
    SQLQuery = "Update Review Set report='Yes' Where Text='" & Text & "'"
    aConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Server.MapPath("App_Data/BookReviewWebsite.accdb")
    aConnection = New OleDbConnection(aConnectionString)
    aConnection.Open()

    aCommand = New OleDbCommand(SQLQuery, aConnection)

    aCommand.ExecuteNonQuery()


    Label15.Text = "Review has been reported"

    aConnection.Close()

End Sub

查看、报告和文本
。这里有两个字段和一个表名,您应该检查数据库是否有效地包含一个名为
Review
的表,以及在此表中是否有两个名为
report
Text
的字段

如果您确实有这个表和这些字段,那么您需要用方括号括起单词
TEXT
,因为单词TEXT是Access 2007中的保留关键字

最后,但并非最不重要的问题是查询字符串本身。以这种方式连接字符串可能会导致错误。如果“Text”变量中只有一个引号,那么结果可能是不可预测的,范围从语法错误到语法错误


非常感谢这真的救了我的命
SQLQuery = "Update Review Set report='Yes' Where [Text]=?"
aCommand = New OleDbCommand(SQLQuery, aConnection)
aCommand.Parameter.AddWithValue("@p1", Text)
aCommand.ExecuteNonQuery()