DataTable中Rows的add和Import区别

 

来自:http://zhidao.baidu.com/question/166913917.html?push=ql
DataTable.ImportRow 方法 
将 DataRow  复制到 DataTable  中,保留任何属性设置以及初始值和当前值。
调用 NewRow  时,将使用现有的表架构向表中添加一行,并为该行填充默认值,同时将 DataRowState  设置为 Added。调用 ImportRow  将保留现有的 DataRowState  以及该行中的其他值。如果作为参数传递的 DataRow 处于分离状态,则忽略它,并且不引发异常。
---------------------
DataRowCollection.Add 方法 (DataRow)
将指定的 DataRow  添加到 DataRowCollection  对象中。
若要创建新的 DataRow,必须使用 DataTable  类的 NewRow  方法。当您使用 NewRow  方法时,新的 DataRow  对象通过父级 DataTable  的架构返回。当您创建了 DataRow  对象并为它的每个列设置值之后,使用 Add  方法将该对象添加到集合中。
如果用户在 RowChanging 事件中生成异常,则生成异常。如果发生异常,则不向表中添加行。 

回答者: LighT_BlaCk - 八级   2010-7-14 13:17

DataRow是有状态的,Add方法意思是新添加的一行,那么通过此方法添加到DataTable时状态就是Added,刚添加进去的

而对于其他状态的行,比如修改过的行,删除的行,提交过的行等等使用Import方式的话,会保留原来的状态,而不是像Add一样是新添加进去的

Adapter就是根据Row的状态进行操作的,你最好能理解每次修改行数据的时候都会影响行的状态,这样有记录的时候才能根据情况往数据库添加或者修改 


补充:
可以保存增加状态,只是Add是添加新的行,而Import是导入,这个你必须理解RowState才行,Add进去的都是新的行,比如你在食堂吃饭拿包子,那算Add进去的,新的,但是吃别人剩下的包子那是Import的,即使别人没吃看起来是新的,但是他会保留现有的包子的状态,不知道能解释明白不能 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值