标题:关于数据原更新的问题
只看楼主
wangfuli
Rank: 4
等 级:贵宾
威 望:12
帖 子:206
专家分:10
注 册:2005-11-11
 问题点数:0 回复次数: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,"表")
上面说的方法,如果要是用绑定技术的话,就不存在这样的问题,请问为什么了?

搜索更多相关主题的帖子: 数据 Dim str dataset 
2006-06-03 10:10
蓝魂
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-6-6
得分:0 
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,"表")
2006-06-06 11:05
wangfuli
Rank: 4
等 级:贵宾
威 望:12
帖 子:206
专家分:10
注 册:2005-11-11
得分:0 
楼上的兄弟,先谢了,不过我试了,好象还不可以了,能不能说的在清楚点了

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



2006-06-06 11:30
蓝魂
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-6-6
得分:0 
发具体代码看看,上面的代码应该没错了
2006-06-07 10:55
wangfuli
Rank: 4
等 级:贵宾
威 望:12
帖 子:206
专家分:10
注 册:2005-11-11
得分:0 
我也认为是没错了,我查了资料也是这么写的了,但是就是更新不了,我很是迷茫

2006-06-08 12:29
wangfuli
Rank: 4
等 级:贵宾
威 望:12
帖 子:206
专家分:10
注 册:2005-11-11
得分:0 

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

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


2006-06-09 20:39
蓝魂
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-6-6
得分:0 
这下有点明白哪里错了,是不是你没有加
if not ispostback then
数据绑定datagrid
end if

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

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

2006-06-10 23:05
wangfuli
Rank: 4
等 级:贵宾
威 望:12
帖 子:206
专家分:10
注 册:2005-11-11
得分:0 

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

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


2006-06-12 17:22
蓝魂
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-6-6
得分:0 
效果一样
2006-06-12 22:24
wangfuli
Rank: 4
等 级:贵宾
威 望:12
帖 子:206
专家分:10
注 册:2005-11-11
得分:0 
我试过了,你说的那个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),到底有什么不同了,在删除数据时、在更新数据原时有什么不同了,为什么一个可以更新数据原,一个不可以了?


2006-06-15 20:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-69450-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.129696 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved