【发布时间】:2018-07-24 15:06:55
【问题描述】:
我有一个 Access 数据库,其列标题为 Key 和 Username,我正在尝试将一些数据设置回数据库第一行的 Username 列。但我得到一个错误:
对于不返回任何键列信息的 SelectCommand,不支持为 UpdateCommand 生成动态 SQL。
代码:
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
Dim connection_string As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.UserAppDataPath & "\DDL.mdb"
Dim strSql As String = "SELECT Key,Username FROM table1"
Dim dtb As New DataTable
Dim command As New OleDbCommand
'Dim dataset As DataSet
Using cnn As New OleDbConnection(connection_string)
cnn.Open()
Using dad As New OleDbDataAdapter(strSql, cnn)
dad.Fill(dtb)
'/// send data from datatable to database
Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(dad)
command.Connection = cnn
command.CommandText = "update * from table1"
'set data
dtb.Rows(0)("Username") = "PG"
dad.Update(dtb)
End Using
End Using
End Sub
End Class
编辑:P.S:我对代码做了一些编辑,仍然出现错误
【问题讨论】:
-
如果您有 MS Access 数据库,为什么要尝试使用 MS SQL Server 提供程序对象?
-
@Plutonix:天啊,是的,我为什么要这样做。它应该是
OleDbDataAdapter我猜.. 我猜它使整个代码不正确。 :/ 和connection也是错误的。 :// -
我应该编辑整个问题。
-
我编辑了整个问题。现在得到一个不同的错误