DataAdapter的Update()应该怎么用?在线!
DataAdapter有个Update方法,参数可以接DataSet
要怎么做才能让DataSet里新增的行更新到数据源?
我用DataAdapter.Update(ds)后,数据源没有反应. 'ds是一个DataSet
问题点数:20、回复次数:15Top
1 楼gaiwa(我不是大侠)回复于 2005-01-21 11:35:21 得分 0
这个问题是我学.Net目前的最大问题Top
2 楼seaonce(雨花中的小皮鞋)回复于 2005-01-21 11:47:07 得分 0
最好一步直接到数据源,建议不要用它这种导两次的方法Top
3 楼3tzjq(永不言弃)回复于 2005-01-21 11:56:32 得分 0
Dim dt As DataTable
dt = Me.DsUserManager1.WorkUser.GetChanges(drsEnum)
intCounter += Me.sdaUserManager.Update(dt)
dt.AcceptChanges()Top
4 楼lzmtw(水如烟)回复于 2005-01-21 11:57:18 得分 0
要DataAdapter.Update(ds)有效果,其前提是:
1、DataAdapter的UpdateCommand.CommandText,InsertCommand.CommandText,DeleteCommandText有效
2、ds.GetChanges不是Nothing
你可以检查一下以上条件。
初用的有一个地方要留意的,就是DataSet或DataTable的AcceptChanges方法。
DataAdapter在更新数据时只更新行状态(RowState)变动了的数据,
这个RowState只是相对的,记录的是上一次AcceptChanges之后的这段时间的数据更改,
如果你在Update之前进行了AcceptChanges,那么GetChanges就是Nothing了,Update就没效果了。
正确的顺序是:
Fill(ds)
添加修改删除
Update(ds)
AcceptChanges
Top
5 楼mooddecode1980(心情解码)回复于 2005-01-21 12:02:47 得分 0
up
-Top
6 楼gaiwa(我不是大侠)回复于 2005-01-21 12:05:21 得分 0
谢谢,等我试试先Top
7 楼gaiwa(我不是大侠)回复于 2005-01-21 12:10:11 得分 0
lzmtw(水如烟) :
怎样才能让DataAdapter的UpdateCommand.CommandText,InsertCommand.CommandText,DeleteCommandText有效
???Top
8 楼gaiwa(我不是大侠)回复于 2005-01-21 12:11:35 得分 0
因为在Update(ds)的时候报错了,说什么InsertCommand必要的哟Top
9 楼welshem(天堂客)回复于 2005-01-21 12:57:57 得分 0
就是你要建立命令对象去赋给DataAdapter的UpdateCommand、InsertCommand、DeleteCommand属性
当然,你只要实例要用的命令属性
DataAdapterObj.UpdateCommand=相应命令对象;
DataAdapterObj.InsertCommand=相应命令对象;
DataAdapterObj.DeleteCommand=相应命令对象;Top
10 楼gaiwa(我不是大侠)回复于 2005-01-21 13:23:55 得分 0
如果我要具体地设置InsertCommand对象(写update语句)那和我直接用SQL语句更新数据源有什么区别呢?Top
11 楼do_the_best(近我者赤)回复于 2005-01-21 13:31:53 得分 0
这些insertcommand之类的命令都可以自动生成的。
你只要调用updata就可以了。Top
12 楼gaiwa(我不是大侠)回复于 2005-01-21 13:36:16 得分 0
自动生成?怎么自动生成呢?Top
13 楼do_the_best(近我者赤)回复于 2005-01-21 13:53:23 得分 0
add new items 的时候要继承Component Class,
它有design的界面。
在左边的server explorer里面找到你要得表,往design界面里拖,他就自动生成connection和adapter,右击那个adapter,选择config data adapter,设置完后就自动生成了insert,delete,update,select四个语句了(限单表)。多表只能生成select.Top
14 楼yinshuhai(因数还)回复于 2005-01-21 13:56:55 得分 20
DataAdapter1=new SqlDataAdapter(comtext,conn);
thisBuilder=new SqlCommandBuilder(DataAdapter1);//这里添加一行,协调Dataset与关联数据库
ds=new DataSet();
这样就可以完成数据集与数据库的关联!
MSDN上的注释:
SqlDataAdapter不会自动生成为了使对 DataSet 所作的更改和相关联的数据源协调起来所必须的 SQL 语句。但是,如果设置了 SqlDataAdapter的 SelectCommand 属性,那么就可以创建 SqlCommandBuilder对象,来自动生成 SQL 语句以更新单表。然后,SqlCommandBuilder将生成其他任何未设置的 SQL 语句。Top
15 楼yinshuhai(因数还)回复于 2005-01-21 13:57:54 得分 0
这样就能直接使用DataAdapter1.updata(ds);方法来实现从数据集到数据库的更新了Top
相关问题
- DataAdapter Update中有错误,如何得到错误的类型?
- 菜鸟问题:DataAdapter在Update更新时出现的错误
- 求解dataadapter的update问题,为什么老不成功??
- 使用dataadapter的update方法遇到的問題
- DataAdapter做update更新时能够使用事务吗?
- 关于DataAdapter的Update的问题,急,望大家帮帮忙
- update到底应该怎样写啊?
- 这个Update trigger应该怎么写?
- 这个UPDATE语句应该怎么写?
- 自己生成的 DataSet (不是用DataAdapter得到的),能用DataAdapter 来 Update 数据库吗?How?




