仓酷云

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

[学习教程] ASP.NET网页设计C#中毗连两个DataTable,相称于Sql的In...

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:29:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我见过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[FJC.Length];
for(inti=0;i<parentcolumns.Length;i++)
{
parentcolumns=ds.Tables[0].Columns[FJC.ColumnName];
}
DataColumn[]childcolumns=newDataColumn[SJC.Length];
for(inti=0;i<childcolumns.Length;i++)
{
childcolumns=ds.Tables[1].Columns[SJC.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[0].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[parentarray.Length+secondarray.Length];
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[FJC]},newDataColumn[]{First.Columns[SJC]});
}
}
}


学习asp.net两个月有余了,除了对html、web控件比较熟悉(应该是说都能理解和接受)之外,竟不知道自己还会什么。看了两本书:《精通asp.net网络编程》(人民邮电出版社)、《asp.net实用案例教程》(清华大学出版社)。
海妖 该用户已被删除
沙发
 楼主| 发表于 2015-1-19 15:17:06 | 只看该作者
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
第二个灵魂 该用户已被删除
板凳
发表于 2015-1-27 11:11:36 | 只看该作者
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
金色的骷髅 该用户已被删除
地板
发表于 2015-2-5 07:37:48 | 只看该作者
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
柔情似水 该用户已被删除
5#
发表于 2015-2-11 08:09:53 | 只看该作者
由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
分手快乐 该用户已被删除
6#
发表于 2015-3-2 01:15:56 | 只看该作者
ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。
简单生活 该用户已被删除
7#
发表于 2015-3-11 01:35:31 | 只看该作者
当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。
山那边是海 该用户已被删除
8#
发表于 2015-3-17 18:10:48 | 只看该作者
在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。
谁可相欹 该用户已被删除
9#
发表于 2015-3-17 18:10:47 | 只看该作者
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
莫相离 该用户已被删除
10#
发表于 2015-3-24 18:50:04 | 只看该作者
主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-3 13:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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