关于dataset的简单问题(答对马上结贴,在线等!!!!)

gbl777 2003-09-13 04:02:39
我有两个数据库db1,db2,两个数据集ds1,ds2与前面的数据库对应;

其中ds1中有table1,ds2中有table2,其中table1与table2的表结构相同;

如何才能把ds2中table2的数据赋给ds1中table1,并且更新到数据库db1;

有没有效率比较高的方法?
...全文
78 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
changezhong 2003-09-15
  • 打赏
  • 举报
回复
我知道能用NewRow()和Add()的方法来更新一个DataTable,但怎么更新到数据库中去就不是很清楚了
changezhong 2003-09-15
  • 打赏
  • 举报
回复
先用到,二天我晓得了比较高级的方法再给你讲,^_^
changezhong 2003-09-15
  • 打赏
  • 举报
回复
我就不信,试试比较老土的方法:
for(int i=0;i<dt2.rows.count;i++)
{
s0=dt2.rows[i][0];
s1=dt2.rows[i][1];
s2=dt2.rows[i][2];
s3=dt2.rows[i][3];
s4=dt2.rows[i][4];
...
sqlstr="insert into db1.tables1 values('"+s0+"','"+s1+"','"+s2+"'...)"
...//执行sql
}
gbl777 2003-09-15
  • 打赏
  • 举报
回复
insertCommand是自动生成的!
zhangjie1234 2003-09-14
  • 打赏
  • 举报
回复
to changezhong (这是最好的方法了能用sql语句完成的任务就用sql语句完成)
Geoffrey1975 2003-09-14
  • 打赏
  • 举报
回复
insert 语句?你的InsertCommand是自己写的还是自动生成的?
你有没有试一下try一下异常,看看报什么类型的错。
或者请你给出你的代码部份。
realsnow 2003-09-14
  • 打赏
  • 举报
回复
upup
gzgz
gbl777 2003-09-14
  • 打赏
  • 举报
回复
Geoffrey1975(迅):我比价同意你的意见,开始也是向你这样做的,但是有的表可以,有的表就不可以总是提示insert 语句有错误!
DTS的确比较好,但是我用的数据库是ACCESS
Geoffrey1975 2003-09-14
  • 打赏
  • 举报
回复
1.为目标数据库表生成DataAdapter,以数据集的形式存放。因为是简单表,所以建议你只定义SelectCommand,然后用CommandBliuder来为他自动生成InsertCommand等对象。

2.对于源数据,请使用Command对象生成DataReader对象。逐行读取。不要采用数据集的形式存放数据。读到一行,就往目标数据集中的表新增一各,放一个。也就是使用NewRow()和Add()的方法。

抱歉,我不喜欢给出代码,只讲方法。通常,我使用该方法来导入移动数据。
目前开始研究使用DTS,这个效率最高。不过很复杂,还没弄懂。
ealgo 2003-09-14
  • 打赏
  • 举报
回复
呵!!!!
gbl777 2003-09-14
  • 打赏
  • 举报
回复
to changezhong , changezhong(小刀)
我的db1在客户端机器上,db2在服务端机器上,现在能够从db2上返回ds2,
我想把db2里面的数据更新到db1里面去。
楼上的方法似乎不可行呀!
changezhong 2003-09-13
  • 打赏
  • 举报
回复
insert into db1.tables1...(select * from db2.tables1...)
Command 对象直接调用SQL
Philip3 2003-09-13
  • 打赏
  • 举报
回复
Command对象直接调用SQL语句
gbl777 2003-09-13
  • 打赏
  • 举报
回复
我建议你使用Command对象直接调用SQL语句,通过执行非返回结果的方法来达到数据转移复制的目的
这个怎么实现?
lyrixliu 2003-09-13
  • 打赏
  • 举报
回复
看来是我刚才考虑不周到
Geoffrey1975 2003-09-13
  • 打赏
  • 举报
回复
不好,这是合并,而非复制。
如果你一定要用到DataSet,我建议你进行DataTable级别的Copy。
如果不使用数据集(DataSet),我建议你使用Command对象直接调用SQL语句,通过执行非返回结果的方法来达到数据转移复制的目的。我认为这是最简单的。
经过数据集的话,效率对大大减低。
gbl777 2003-09-13
  • 打赏
  • 举报
回复
to: lyrixliu()
就这么简单嘛?ds1.Merge(ds2)之后就会更新到数据库db1了吗?
lyrixliu 2003-09-13
  • 打赏
  • 举报
回复
ds1.Merge(ds2)

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧