ASP.NET网页设计C#中毗连两个DataTable,相称于Sql的In...
我见过java运行在手机上,包括很廉价的山寨手机,但是却暂时没发现.net在手机上有什么作为。wp7可能是个转机,但是按照《Java的跨平台就是一句谎言。那.net的跨平台也当之无愧是一句谎言。鄙人面的例子中完成了3个Join办法,其目标是把两个DataTable毗连起来,相称于Sql的InnerJoin办法,前往DataTable的一切列。假如两个DataTable中的DataColumn有反复的话,把第二个设置为ColumnName+"_Second",上面是代码,但愿对人人有所匡助。
usingSystem;
usingSystem.Data;
namespaceWindowsApplication1
{
publicclassSQLOps
{
publicSQLOps()
{
}
publicstaticDataTableJoin(DataTableFirst,DataTableSecond,DataColumn[]FJC,DataColumn[]SJC)
{
//创立一个新的DataTable
DataTabletable=newDataTable("Join");
//UseaDataSettoleverageDataRelation
using(DataSetds=newDataSet())
{
//把DataTableCopy到DataSet中
ds.Tables.AddRange(newDataTable[]{First.Copy(),Second.Copy()});
DataColumn[]parentcolumns=newDataColumn;
for(inti=0;i<parentcolumns.Length;i++)
{
parentcolumns=ds.Tables.Columns.ColumnName];
}
DataColumn[]childcolumns=newDataColumn;
for(inti=0;i<childcolumns.Length;i++)
{
childcolumns=ds.Tables.Columns.ColumnName];
}
//创立联系关系
DataRelationr=newDataRelation(string.Empty,parentcolumns,childcolumns,false);
ds.Relations.Add(r);
//为联系关系表创立列
for(inti=0;i<First.Columns.Count;i++)
{
table.Columns.Add(First.Columns.ColumnName,First.Columns.DataType);
}
for(inti=0;i<Second.Columns.Count;i++)
{
//看看有无反复的列,假如有在第二个DataTable的Column的列明后加_Second
if(!table.Columns.Contains(Second.Columns.ColumnName))
table.Columns.Add(Second.Columns.ColumnName,Second.Columns.DataType);
else
table.Columns.Add(Second.Columns.ColumnName+"_Second",Second.Columns.DataType);
}
table.BeginLoadData();
foreach(DataRowfirstrowinds.Tables.Rows)
{
//失掉行的数据
DataRow[]childrows=firstrow.GetChildRows(r);
if(childrows!=null&&childrows.Length>0)
{
object[]parentarray=firstrow.ItemArray;
foreach(DataRowsecondrowinchildrows)
{
object[]secondarray=secondrow.ItemArray;
object[]joinarray=newobject;
Array.Copy(parentarray,0,joinarray,0,parentarray.Length);
Array.Copy(secondarray,0,joinarray,parentarray.Length,secondarray.Length);
table.LoadDataRow(joinarray,true);
}
}
}
table.EndLoadData();
}
returntable;
}
publicstaticDataTableJoin(DataTableFirst,DataTableSecond,DataColumnFJC,DataColumnSJC)
{
returnJoin(First,Second,newDataColumn[]{FJC},newDataColumn[]{SJC});
}
publicstaticDataTableJoin(DataTableFirst,DataTableSecond,stringFJC,stringSJC)
{
returnJoin(First,Second,newDataColumn[]{First.Columns},newDataColumn[]{First.Columns});
}
}
}
学习asp.net两个月有余了,除了对html、web控件比较熟悉(应该是说都能理解和接受)之外,竟不知道自己还会什么。看了两本书:《精通asp.net网络编程》(人民邮电出版社)、《asp.net实用案例教程》(清华大学出版社)。 业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。 业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。 ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。 当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。 在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。 Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。 主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。
页:
[1]