兰色精灵 发表于 2015-1-16 14:24:28

来一篇关于NET的DataTable.ImportRow()与DataTable.Add()的区分

如果英语好,口才好,加上女孩子的优势说不定有机会进去做做别的工具)明天偶然间用到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来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。

小女巫 发表于 2015-2-10 00:04:23

那么,ASP.Net有哪些改进呢?

小魔女 发表于 2015-2-28 10:37:00

同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。

老尸 发表于 2015-3-9 22:41:38

使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

飘灵儿 发表于 2015-3-17 03:09:13

能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。

谁可相欹 发表于 2015-3-23 18:06:38

可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
页: [1]
查看完整版本: 来一篇关于NET的DataTable.ImportRow()与DataTable.Add()的区分