仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1449|回复: 8
打印 上一主题 下一主题

[学习教程] 来一篇关于NET的DataTable.ImportRow()与DataTable.Add()的区分

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:24:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果英语好,口才好,加上女孩子的优势说不定有机会进去做做别的工具)明天偶然间用到ImportRow()向DataTable中增加纪录,代码以下:
privatevoidAddAppendix(stringfileName,stringDbName)
{
DataTabledtAppendix=UpdateAppendix();
DataRowdr=dtAppendix.NewRow();
dr["Appendix"]=fileName;
dr["DbName"]=DbName;
dtAppendix.ImportRow(dr);
}

但是实行后发明dtAppendix中的纪录并没有增添。但是将上述黄色代码换成dtAppendix.Rows.Add(dr);就能够了。后上彀查了下材料弄分明了缘故原由。上面就说一下这二者的用法与区分及其合用情形。

1、起首,我们先说下DataTable.NewRow()办法,这个办法能够创立和表具有不异构架的DataRow(并且必需利用这个办法才干创立和原表一样构架的DataRow),而且这个新行是增加在原表上的。可是我发明这个DataTable中并没有这个空行。为何?缘故原由是如许的:本来Datatable中Rows都一个RowState属性,共有以下几种:

1,Detached该行已被创立,但不属于任何DataRowCollection。DataRow在以下情形下当即处于此形态:创立以后增加到汇合中之前;或从汇合中移除以后。
2,Unchanged该行自前次挪用AcceptChanges以来还没有变动。
3,Added该行已增加到DataRowCollection中,AcceptChanges还没有挪用。
4,Deleted该行已经由过程DataRow的Delete办法被删除。
5,Modified该行已被修正,AcceptChanges还没有挪用。

实在NewRow()创立的行其RowState是Detached,不言而喻新建的行是不成见。
2、ImportRow()
将DateRow复制到DataTable中,保存任何属性设置和初始值和以后值。可是当DataRow的RowState属性为Detached时没法复制,以是可见上述黄色代码不成行了。网上有人说不克不及复制是由于新建的行从属于原表,我以为这是不准确,究其缘故原由非常由于行的属性。实在假如我们把行的属性改动的话,ImportRow()办法仍是可行的。
ImportRow()一样平常用于将一个表中的数据复制到另外一个表中。实例代码以下:
privateDataTableHowToUseImportRow(DataTabledt)
{
DataTabledtNew=dt.Clone();
foreach(DataRowdrindt.Rows)
{
dtNew.ImportRow(dr);
}
returndtNew;
}

3、Add()
将制订的DataRow增加到DataRowCollection工具中。实例代码以下:
privatevoidAddRow(DataTabletable)
{
DataRowCollectionrowCollection=table.Rows;
//InstantiateanewrowusingtheNewRowmethod.

DataRownewRow=table.NewRow();
//Insertcodetofilltherowwithvalues.

//AddtherowtotheDataRowCollection.
table.Rows.Add(newRow);
}

增加完后DataRow的RowState属性变成Added。以是把上述的dtAppendix.ImportRow(dr)改成dtAppendix.Rows.Add(dr)便可。无论谁倒了对双方阵营的粉丝们也是有害无益。
admin 该用户已被删除
沙发
发表于 2015-1-18 14:03:32 | 只看该作者
关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
活着的死人 该用户已被删除
板凳
发表于 2015-1-25 23:25:57 | 只看该作者
逐步缩小出错代码段的范围,最终确定错误代码的位置。
金色的骷髅 该用户已被删除
地板
发表于 2015-2-4 13:32:32 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
小女巫 该用户已被删除
5#
发表于 2015-2-10 00:04:23 | 只看该作者
那么,ASP.Net有哪些改进呢?
小魔女 该用户已被删除
6#
发表于 2015-2-28 10:37:00 | 只看该作者
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
老尸 该用户已被删除
7#
发表于 2015-3-9 22:41:38 | 只看该作者
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
飘灵儿 该用户已被删除
8#
发表于 2015-3-17 03:09:13 | 只看该作者
能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。
谁可相欹 该用户已被删除
9#
发表于 2015-3-23 18:06:38 | 只看该作者
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-4 21:45

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表