您的位置:程序门 -> .net技术 -> c#



sqldataadapter.update() 批量更新到数据库的问题,你要挑战吗?50分,


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


sqldataadapter.update() 批量更新到数据库的问题,你要挑战吗?50分,[已结贴,结贴人:johy2001]
发表于:2007-02-05 13:05:10 楼主
vs   2003中好象可以,2005中怎么就是更新不了!   两个表结构完全一样
select   *   from   t1--> dataset1      

select   *   from   t2-->   dataset2

table   t1:   id   int   ,name   nvarchar(50)   ;id为主建+标识
            t2:   id   int   ,name   nvarchar(50)
原:t1                         t2                                           t1
    id     name             id   name         结果   ====> >         id       name
    1         a                 1         k                                   1         a
    2         b                 2         h                                   2         b
    3         c                 3         l                                   3         c  
    4         d                 ......                                   4         d  
                                                                              5         k  
                                                                              6         h  
                                                                              7           l
使用vs   2005   做,要是能成功,把例子贴出来,立马送分!
发表于:2007-02-05 13:07:251楼 得分:0
不会   嘿嘿
发表于:2007-02-05 14:05:082楼 得分:0
将dataset2中的name列值取出,添加到dataset1中就是了啊
发表于:2007-02-05 14:13:573楼 得分:0
不知道lz的迷惑点在哪里?更新不了,是怎么更新不了?  

sqldataadapter,需要有insert,select,update,delete等command语句,不知道lz的代码中是否有这些代码。
发表于:2007-02-06 12:05:374楼 得分:0
///   <summary>
///   保存grid中的数据到数据库表中
///   </summary>
internal   static   void   updatedata(sqlconnection   conn,   string   updatestring,dataset   ds)
{
sqldataadapter   da   =   new   sqldataadapter();
da.selectcommand   =   new   sqlcommand(updatestring,conn);
sqlcommandbuilder   cb   =   new   sqlcommandbuilder(da);

da.insertcommand   =   cb.getinsertcommand();
da.updatecommand   =   cb.getupdatecommand();
da.deletecommand   =   cb.getdeletecommand();
conn.open();
               
sqltransaction   datatransaction   =   null   ;

try
{
//dvrs   =   dataviewrowstate.modifiedcurrent;
datatransaction   =   conn.begintransaction(isolationlevel.serializable);

da.insertcommand.transaction   =   datatransaction;

da.updatecommand.transaction   =   datatransaction;

da.deletecommand.transaction   =   datatransaction;

da.update(ds.tables[0].select( " ", " ",dataviewrowstate.added));


da.update(ds.tables[0].select( " ", " ",dataviewrowstate.modifiedcurrent));

da.update(ds.tables[0].select( " ", " ",dataviewrowstate.deleted));


datatransaction.commit();
ds.acceptchanges();

messagebox.show( "保存成功! ");
}

catch(system.systemexception     ex)
{
datatransaction.rollback();
messagebox.show(ex.message, "保存失败 ");
}
finally
{    
ds.clear();
da.fill(ds);
conn.close();
}
}
我这样操作也不行,要么你自己试下看能不能出来数据,请使用vs   2005+sql   2000
发表于:2007-02-06 17:26:265楼 得分:0
ding
发表于:2007-02-07 13:21:156楼 得分:0
?
发表于:2007-02-07 13:38:527楼 得分:0
insert   into   t1   select   name   from   t2
这样不就把2个表集合起来后输出了吗,不过可以考虑用临时表   把这2个表的记录都select过来后在输出
发表于:2007-02-12 08:39:428楼 得分:40
我是做网络编程   返回的是dataset可能包含多个表,
发表于:2007-02-12 08:43:489楼 得分:10
up
发表于:2007-02-12 10:17:0210楼 得分:0
搞定
发表于:2007-04-27 11:35:0311楼 得分:0
大哥怎么做出来的了,共享好吗?
发表于:2007-04-30 15:29:2012楼 得分:0
对阿,怎么弄好的!


快速检索

最新资讯
热门点击