【发布时间】:2012-01-31 12:19:58
【问题描述】:
我目前有一个通过 ASP .NET 前端访问的 Microsoft Access 数据库。我正在尝试向表中添加一行,但这似乎不起作用,我正在使用的代码如下所示。
Sub prcChoose()
Dim sql As String
Dim da As New OleDbDataAdapter
Dim conn As New OleDbConnection
Dim comm As New OleDbCommand
Dim cb As New OleDbCommandBuilder(da)
ds = New DataSet
conn = New OleDbConnection(ConfigurationManager.ConnectionStrings("dbConnection").ConnectionString)
sql = "SELECT * FROM ParentPreference"
conn.Open()
da = New OleDbDataAdapter(sql, conn)
da.Fill(ds, "Choice")
Dim NewRow As Data.DataRow = ds.Tables("Choice").NewRow()
NewRow.Item(0) = txtUser.Text
NewRow.Item(1) = dropdown.SelectedValue
ds.Tables("Choice").Rows.Add(NewRow)
***da.UpdateCommand = cb.GetUpdateCommand()***
da.Update(ds, "Choice")
End Sub
根据是否包含由 3 个星号括起来的行,我会收到不同的错误消息。没有它,我会收到“Update requires a valid InsertCommand when passed DataRow collection with new rows.”并收到“DataAdapter.SelectCommand 属性需要初始化。”我花了几个小时试图找出哪里出错了,但我没有成功。
提前致谢!
编辑:根据下面凯西的建议,我添加了以下代码行:
da.InsertCommand = cb.GetInsertCommand
da.DeleteCommand = cb.GetDeleteCommand
我在上面用星号括起来的代码下方添加了这些行。但我仍然收到相同的错误消息。 DataAdapter.SelectCommand 属性需要初始化。下面一行会出现这个错误
da.InsertCommand = cb.GetInsertCommand
【问题讨论】:
标签: asp.net .net database vb.net ms-access