请教ADO.NET使用中出现并发冲突
也就是用ACCESS中一个表同时填充一个数据集的两张表,其中一张表只需要表的结构,所以把里面数据记录清空,然后事件激发这张表填写新的数据,或者修改数据,当填写新数据的时候正常,但是修改的时候就出现了并发冲突,求高手帮忙哦。
sql = "select * from T1"
datast1 = New DataSet("xx")
yyy = System.IO.Directory.GetCurrentDirectory.ToString() + "\Test.mdb"
dbsql = "provider=Microsoft.Jet.OLEDB.4.0;data source=" & yyy
adocmd = New OleDb.OleDbDataAdapter(sql, dbsql)
adocmd.Fill(datast1, "tt1")
adocmd.Fill(datast1, "xxx")
datast1.Tables("xxx").Clear()
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim xrow As DataRow
xrow = datast1.Tables("xxx").NewRow
xrow.Item(0) = "123"
xrow.Item(1) = "123"
xrow.Item(2) = "xuke"
datast1.Tables("xxx").Rows.Add(xrow)
datast1.Tables("xxx").GetChanges()
Cmd = New OleDb.OleDbCommandBuilder(adocmd)
adocmd.Update(datast1, "xxx")
DataGrid1.DataSource = datast1.Tables("xxx")
End Sub
Public Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
datast1.Tables("xxx").Rows(1).Item(0) = "aaaaaaaa"
datast1.Tables("xxx").Rows(1).Item(1) = "zzzzzzzz"
datast1.Tables("xxx").Rows(1).Item(2) = "aaaaaaaa"
datast1.Tables("xxx").GetChanges()
Cmd = New OleDb.OleDbCommandBuilder(adocmd)
adocmd.Update(datast1.Tables("xxx"))
DataGrid1.DataSource = datast1.Tables("xxx")
End Sub
问题点数:0、回复次数:4Top
1 楼mytieren(毛毛虫)回复于 2004-12-01 22:46:10 得分 0
自己顶一下, 急等, 谢谢各位了。Top
2 楼fishboyzyf(小鱼儿)回复于 2004-12-06 12:04:26 得分 0
upTop
3 楼sbsb(sbsb)回复于 2004-12-06 14:00:03 得分 0
估计删除时也会出现吧。
首先先排除是不是并发冲突:即你读出的DatatSet org version在更新时与数据库是否还一致。
第二要根据commandbuilder的使用要求,保证表有主键。
第三,如果还不能解决,请使用手动生成update command.Top
4 楼sbsb(sbsb)回复于 2004-12-06 16:06:00 得分 0
commandbuilder是根据旧数据来构造SQL语句的,你把旧数据清空了,这个可能是原因Top




