16,721
社区成员




Sub AccEss数据库增删改(ByVal 数据源 As String, ByVal 语句 As List(Of String))
Dim 数 = 0
Dim 连接 As New OleDb.OleDbConnection(数据源)
连接.Open()
For Each 执行 As String In 语句
Dim 操作 = New OleDb.OleDbCommand(执行, 连接)
数 += 操作.ExecuteNonQuery()
Next
连接.Close()
MessageBox.Show("数据保存成功!受影响数" + 数.ToString("〖00000〗"), "友情提醒", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
End Sub
Private Sub 自适应更新()
Dim cnStr As String = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = 测试用例.mdb;"
Dim strSql As String = "SELECT * FROM 测试表 order by Equipment ASC, SMT_TIME asc, DT DESC"
Dim ds As DataSet = New DataSet
Using cn As New OleDb.OleDbConnection(cnStr)
Dim da As New OleDb.OleDbDataAdapter(strSql, cn)
Dim Mybuilder As OleDb.OleDbCommandBuilder = New OleDb.OleDbCommandBuilder(da)
cn.Open() '自适应更新数据表必须有主键
da.Fill(ds, "测试表")
ds.Tables(0).Rows(0)(2) = "1111111111111"
ds.Tables(0).AcceptChanges()
Dim 执行 As New List(Of String)
Dim 语句 As String = "UPDATE 测试表 SET "
Dim xu = 0
For Each 列 As DataColumn In ds.Tables(0).Columns
语句 += 列.ColumnName + " = '" + ds.Tables(0).Rows(0)(xu) + "' ,"
xu += 1
Next
语句 = 语句.TrimEnd(",") + "WHERE ID = '" + ds.Tables(0).Rows(0)(0) + "'"
执行.Add(语句)
AccEss数据库增删改(cnStr, 执行)'执行这个语句更新成功,也可以查看文件夹中数据库修改时间看到
Mybuilder.GetUpdateCommand()
Dim dd = Mybuilder.GetUpdateCommand.CommandText
da.Update(ds.Tables(0))'之上数据库和数据表有打开并读取,就是没执行更新
End Using
End Sub
至于为何自适应更新无法打开数据库和数据表的原因尚未查清.