VB.net里怎么利用ADO将DataGridView的改动同步到ACCESS?
1个回答
展开全部
这是我代码一部分,我的数据库连接cn是一直打开的,必须查询里有这个表的主键,才能直接update
====================================================
' 用户账号列表
Public Sub UserList()
sql = "select Id, OperatorName, Role, Phone, Address, Remarks from tbOperatorInfo"
'cn = New OleDbConnection(cnStr)
da = New OleDbDataAdapter(sql, cn)
ds = New DataSet
da.Fill(ds, "tbOperatorInfo")
Users.DataGridView1.DataSource = ds.Tables("tbOperatorInfo")
'cn.Close()
End Sub
' 用户账号列表保存
Public Sub UserRecord()
Try
If IsNothing(ds.Tables("tbOperatorInfo").GetChanges) Then Exit Sub
Dim cb = New OleDbCommandBuilder(da)
da.Update(ds.Tables("tbOperatorInfo").GetChanges)
'否则再次刷新表不同步
ds.Tables("tbOperatorInfo").AcceptChanges()
cb.Dispose()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
====================================================
' 用户账号列表
Public Sub UserList()
sql = "select Id, OperatorName, Role, Phone, Address, Remarks from tbOperatorInfo"
'cn = New OleDbConnection(cnStr)
da = New OleDbDataAdapter(sql, cn)
ds = New DataSet
da.Fill(ds, "tbOperatorInfo")
Users.DataGridView1.DataSource = ds.Tables("tbOperatorInfo")
'cn.Close()
End Sub
' 用户账号列表保存
Public Sub UserRecord()
Try
If IsNothing(ds.Tables("tbOperatorInfo").GetChanges) Then Exit Sub
Dim cb = New OleDbCommandBuilder(da)
da.Update(ds.Tables("tbOperatorInfo").GetChanges)
'否则再次刷新表不同步
ds.Tables("tbOperatorInfo").AcceptChanges()
cb.Dispose()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
追答
OleDbCommandBuilder是根据da的select command转换的,使用update必须是sql导出来的table格式不变的更新回去,内容修改和增加删除datarow 都是可以成功的。
提示“Update 语句的语法错误”,猜是你的sql那句写的有问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询