马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有时也搞不懂应该学那种;主要看你以后去的那个公司是使用哪种了。就像王千祥的课上说的:企业应用现在主要就三层(其实也差不多就是MVC):表示层(主要使用html写的,很简单)、业务逻辑层(主要就是应用服务器的)。最后就是数据层(其实就是学习数据库)浪漫十一狼
鄙人面的例子中完成了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[i]=ds.Tables[0].Columns[FJC[i].ColumnName];
}
DataColumn[]childcolumns=newDataColumn[SJC.Length];
for(inti=0;i<childcolumns.Length;i++)
{
childcolumns[i]=ds.Tables[1].Columns[SJC[i].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[i].ColumnName,First.Columns[i].DataType);
}
for(inti=0;i<Second.Columns.Count;i++)
{
//看看有无反复的列,假如有在第二个DataTable的Column的列明后加_Second
if(!table.Columns.Contains(Second.Columns[i].ColumnName))
table.Columns.Add(Second.Columns[i].ColumnName,Second.Columns[i].DataType);
else
table.Columns.Add(Second.Columns[i].ColumnName+"_Second",Second.Columns[i].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]});
}
}
}
有个问题想请教你一下,呵呵:)你觉得将来学什么方向比较好,我真是想不出来,知道的太少了,麻烦了。 |