首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

反正分多.虽然有关问题简单.再用100分问个简单的有关问题

2012-02-17 
反正分多.虽然问题简单.再用100分问个简单的问题.DataSetdataset1,dataset2Reservoir.BLL.Userinfouerinf

反正分多.虽然问题简单.再用100分问个简单的问题.
DataSet   dataset1,dataset2;

Reservoir.BLL.Userinfo   uerinfo=new   Reservoir.BLL.Userinfo();
dataset1=uerinfo.GetList( " ");

Reservoir.BLL.Area   area=new   Reservoir.BLL.Area();
dataset2=area.GetList( " ");

两个都返回dataset,现在的问题是.

dataset1中的USER_AREA=dataset2中的id
关联后,把datase1中的USER_DEPT   和dataset2中的mc   组合起来,成一个dataset   如何写条件??


如果解决,就马上接贴了...

[解决办法]
先遍历DataSet1
取得USER_AREA到字符串strUserArea
DataSet2.Select( "USER_AREA= ' "+strUserArea+ " ' ")
如果得到的表数据为0 跳过
如果> 0则做合并操作

[解决办法]
帮LZ顶
[解决办法]
和一楼的差不多.
[解决办法]
UP
[解决办法]
路过~
[解决办法]
try..

DataTable.Select();

MSDN:

ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.NETDEVFX.v20.chs/cpref4/html/O_T_System_Data_DataTable_Select.htm
[解决办法]
try{
//准备DataSet1
DataTable dt1=new DataTable();
dt1.Columns.Add( "USER_AREA ",typeof(int));
dt1.Columns.Add( "USER_DEPT ",typeof(string));
dt1.Rows.Add(1, "部门吗? ");
dt1.Rows.Add(2, "应该是有 ");
DataSet ds1=new DataSet();
ds1.Tables.Add(dt1);
//准备DataSet2
DataTable dt2=new DataTable();
dt2.Columns.Add( "id ",typeof(int));
dt2.Columns.Add( "mc ",typeof(string));
dt2.Rows.Add(1, "我们假设是一对多的关系 ");
dt2.Rows.Add(1, "其它的也可以自己扩展 ");
dt2.Rows.Add(2, "这个字段不知道是什么意思 ");
DataSet ds2=new DataSet();
ds2.Tables.Add(dt2);
//现在我们不用表了只用dataSet来接作,我们需要一个新的表来存放新的数据
DataTable dt3=new DataTable();
dt3.Columns.Add( "id ",typeof(int));
dt3.Columns.Add( "USER_DEPT ",typeof(string));
dt3.Columns.Add( "mc ",typeof(string));

//来两个视图先
DataView dv1 =ds1.Tables[0].DefaultView;
foreach(DataRowView drv1 in dv1){
DataView dv2=new DataView(ds2.Tables[0],
String.Format( "id={0} ",drv1[ "USER_AREA "]),
String.Empty,
DataViewRowState.CurrentRows);
foreach(DataRowView drv2 in dv2){
dt3.Rows.Add(drv2[ "id "],drv1[ "USER_DEPT "],drv2[ "mc "]);
}
}

//显示
foreach(DataRow dr in dt3.Rows){
Console.WriteLine( "id:{0}USER_DEPT:{1}MC:{2} ",dr[0],dr[1],dr[2]);
}



Console.WriteLine( "end ");
}
catch(Exception e){
Console.WriteLine(e.ToString());
}
[解决办法]
写了个小例子,不知道是不是这个意思?

static void Main(string[] args)
{
//生成两个DataSet作为测试
SqlConnection con = new SqlConnection( "server=.;database=student;uid=sa;pwd=0421 ");
SqlDataAdapter sda1 = new SqlDataAdapter( "select sno,sname from studentDetails ", con);
SqlDataAdapter sda2 = new SqlDataAdapter( "select sno,sage from studentDetails ", con);


DataSet ds1 = new DataSet();
DataSet ds2 = new DataSet();
sda1.Fill(ds1, "student1 ");
sda2.Fill(ds2, "student2 ");

//定义一个DataTable
DataTable dt = new DataTable( "student ");
DataColumn colume = new DataColumn();
colume.DataType = Type.GetType( "System.String ");
colume.ColumnName = "Name ";
dt.Columns.Add(colume);

colume = new DataColumn();
colume.DataType = Type.GetType( "System.Int32 ");
colume.ColumnName = "Age ";
dt.Columns.Add(colume);

//遍历
foreach (DataRow row1 in ds1.Tables[ "student1 "].Rows)
{
DataRow[] rows = ds2.Tables[ "student2 "].Select( "sno= " + row1[ "sno "].ToString());
if (rows.Length > 0)
{
DataRow row = dt.NewRow();
row[ "Name "] = row1[ "sname "];
row[ "Age "] = rows[0][ "sage "];
dt.Rows.Add(row);
}
}

//测试
foreach (DataRow row in dt.Rows)
{
Console.WriteLine(row[ "Name "].ToString() + "\t " + row[ "Age "].ToString());
}
}
[解决办法]
说明一下:

studentDetails表有三个字段,分别为sno,sname,sage

ds1存储sno,sname
ds2存储sno,sage

然后根据sno作查询,得到sname和sage存储到新建的DataTable中..


[解决办法]
为什么不在数据库里写一个存储过程得到呢!

热点排行