学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
 13 12
发新话题
打印

关于数据原更新的问题

关于数据原更新的问题

最近我在做数据库的时候发现这样的问题:
1、修改dataset中的数据中,可以更新给数据原:
Dim da As new OleDbDataAdapter(str,cnnstr)
da.fill(ds,"表")
ds.tables("表").rows(0)(0)="sadf"
Dim db As New OleDbCommandBuilder(da)
da.update(ds,"表")
2、要是删除dataset中的数据时,例如删除一行更新不了数据原:
Dim da As new OleDbDataAdapter(str,cnnstr)
da.fill(ds,"表")
ds.tables("表").rows.removeat(0)
Dim db As New OleDbCommandBuilder(da)
da.update(ds,"表")
上面说的方法,如果要是用绑定技术的话,就不存在这样的问题,请问为什么了?

TOP

Dim da As new OleDbDataAdapter(str,cnnstr)
da.fill(ds,"表")
ds.tables("表").rows.removeat(0)
Dim db As New OleDbCommandBuilder(da)
'因为你前面用了removeat(0)删除了数据集的一个数据,用了update后它会执行一个delete命令删除数据库的数据.
'你在update之前应加上da.DeleteCommand = db.GetDeleteCommand()
da.update(ds,"表")

TOP

楼上的兄弟,先谢了,不过我试了,好象还不可以了,能不能说的在清楚点了

[此贴子已经被作者于2006-6-6 13:14:37编辑过]


TOP

发具体代码看看,上面的代码应该没错了

TOP

我也认为是没错了,我查了资料也是这么写的了,但是就是更新不了,我很是迷茫

TOP

不好意思,我有点没把问题说清楚了,
重要的问题在于:把数据绑定在datagrid 上,在datagrid中按delete键删除一行,然后用update,就可以更新数据库;但是要是不在datagid中删除,用ds.tables().rows.removeat(),在用update,就更新不了数据库了。
这到底为什么了,请说的清楚点了

[此贴子已经被作者于2006-6-9 20:41:37编辑过]

TOP

这下有点明白哪里错了,是不是你没有加
if not ispostback then
数据绑定datagrid
end if

如果表中字段用了关键字一样会出错(同时用db.GetDeleteCommand之类时),例如count,sum

[此贴子已经被作者于2006-6-11 0:08:32编辑过]

TOP

那在datagrid中删除一行和用ds.tables().rows.removeat()删除一行到底有什么不同了

[此贴子已经被作者于2006-6-12 17:32:01编辑过]

TOP

效果一样

TOP

我试过了,你说的那个ds.table().rows.removeat()和datagrid中删除一行不一样了,datagrid中删除一行的代码应该是ds.table().rows().delete,这样的删除是两个概念了,下面是我试过两个更新数据原的代码:
这个是可以更新的代码:
ds.table("1").rows(0).delete
da.Update(ds, "1")
这个是不可以更新的代码:
ds.Tables("1").rows.removeat(0)
da.Update(ds, "1")
这两个句子ds.table("1").rows(0).delete和ds.Tables("1").rows.removeat(0),到底有什么不同了,在删除数据时、在更新数据原时有什么不同了,为什么一个可以更新数据原,一个不可以了?

TOP

 13 12
发新话题