[问题] 一个有关DataSet的Merge()问题。。。。。。。100分送上,不够再加,请指教!!!!!!

asgard 2005-02-17 04:42:31
数据库中的table定义:
create table myTable
(
name varchar2(10),
flag number(1,0),
money number(6,2)
)
dataSet1中存放的是从myTable中读取的所有数据记录(select * from myTable)
注:myTable中只有一条记录('小明', 1, 123.45)

dataSet2是自己用.net做成的一个DataSet(是不是叫什么型付dataset),结构如下:
name string
flag int
money double
并且在dataSet2加入一条初始记录:(string.Empty, 0, 0)

我现在企图把dataSet1 merge到dataSet2上
(就是把dataSet1中的('小明', 1, 123.45)这条记录“拷贝”给dataSet2):
dataSet2.Merge(dataSet1.Tables[0],false,MissingSchemaAction.Add);

代码不报错,但发现数据不能成功merge,请问是怎么回事?

是不是因为一个是普通DataSet,一个是所谓的“型付DataSet”
...全文
253 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
asgard 2005-02-17
  • 打赏
  • 举报
回复
顶一顶。。
asgard 2005-02-17
  • 打赏
  • 举报
回复
我发现用来存储数据库数据的DataSet中,如果DB中的数据是NUMBER型,那么这个DataSet中的对应的字段是decimal型的:
<xs:element name="ColumnName" type="xs:decimal" minOccurs="0" />
但是我自己在.net中做的DataSet是int型或者double型的,这两者的不匹配算不算DataSet结构的不匹配?
asgard 2005-02-17
  • 打赏
  • 举报
回复
你说的是如何“做出来”两个相同结构的DataSet。现在情况是两个DataSet已经存在,如何知道他们结构是否相同呢?
chsfly 2005-02-17
  • 打赏
  • 举报
回复
DataSet dataSet2 =dataSet1.Clone();这样就可以保证结构相同了.


asgard 2005-02-17
  • 打赏
  • 举报
回复
请大家再看一下这一段:
数据库中的table定义:
create table myTable
(
name varchar2(10),
flag number(1,0),
money number(6,2)
)
dataSet1中存放的是从myTable中读取的所有数据记录(select * from myTable)
注:myTable中只有一条记录('小明', 1, 123.45)

dataSet2是自己用.net做成的一个DataSet(是不是叫什么型付dataset),结构如下:
name string
flag int
money double

我就想知道这两个DataSet是不是结构一致呢?
asgard 2005-02-17
  • 打赏
  • 举报
回复
to chsfly(一蓑烟雨任平生) : "型付"就是用.net“画”成的一个DataSet
如果按flyinglz(云溪飘叶)的方法:
创个TABLE与Dataset1中表结构一样
DataTable dt = DataSet1.Tables[0].clone;
使用dt.newrow().itemarry = DataSet1.Tables[0].rows[0].itemarry
只能保证这个dt与DataSet1中的DataSet1.Tables[0]完全一致,不能保证dataSet1和dataSet2的结构相同
chsfly 2005-02-17
  • 打赏
  • 举报
回复
不知你所说的"型付"是什么意思.如果按flyinglz(云溪飘叶)的方法做一定保证dataSet1和dataSet2的结构相同.
asgard 2005-02-17
  • 打赏
  • 举报
回复
how to make sure that the two dataset are equal ?
LoveCherry 2005-02-17
  • 打赏
  • 举报
回复
pls make sure the stru of the two datatables are equal
hamadou 2005-02-17
  • 打赏
  • 举报
回复
是啊,如果使用merge方法,需要注意两个dataset或datatable 或datarow 的结构是否一样。
如果一样的话,直接使用dataset1.merge(table2)即可。
asgard 2005-02-17
  • 打赏
  • 举报
回复
to chsfly(一蓑烟雨任平生) : 没办法,要求这样,想用型付DataSet的一些特性。
to flyinglz(云溪飘叶) :难道 dt = DataSet1.Tables[0] 和 dt = DataSet1.Tables[0].clone不同?我试了一下,还是不行。
wxq4100798 2005-02-17
  • 打赏
  • 举报
回复
顶merge应该是可行的,没试过
flyinglz 2005-02-17
  • 打赏
  • 举报
回复
创个TABLE与Dataset1中表结构一样
DataTable dt = DataSet1.Tables[0].clone;
使用dt.newrow().itemarry = DataSet1.Tables[0].rows[0].itemarry
chsfly 2005-02-17
  • 打赏
  • 举报
回复
直接
DataSet dataSet2 =dataSet1.Copy();
数据不就dataSet1的数据不就拷贝过来了吗,何必如此麻烦.

110,535

社区成员

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

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

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