如我有表
dt1
ID name
1 Age
2 Apple
3 Orange
dt2
ID Price
3 10
1 6
2 7
合并成
ID name Price
1 Age 6
2 Apple 7
3 Orange 10
谢谢
dt1
ID name
1 Age
2 Apple
3 Orange
dt2
ID Price
3 10
1 6
2 7
合并成
ID name Price
1 Age 6
2 Apple 7
3 Orange 10
谢谢
解决方案 »
- URLRewriter重写不能实现的问题
- DetailsView控件的使用问题!!!!!!!!!!1
- 高分求助:图片播放器的问题,请指点一下!
- 如何使窗口最大化
- 为什么label绑定的编码字段正常?但是textbox绑定同一个字段却不正常?我是没分了,不是不给分!
- 怎样把数据集里的字段绑定到datagrid模板列的复选框?
- MyAdapter.Fill (ds,"STAM_BASE_TABLE"); 这第二个参数是什么意思呢?可以随便填一个吗?
- <---------------------请教51la的统计是怎么做的?--------------------->
- 简单问题,如何得到一个文件的后缀
- gif图片为什么停止不动,有何解决办法!!!
- 类工厂的问题?
- |M| 数据绑定时不绑定某条件的行要怎么办
嗯. 搂主是说 SQL ,还是 别的?
Select dt1.ID, dt1.name, dt2.Price From dt1, dt2 Where dt1.ID = dt2.ID
select a.id,a.name ,b.price from dt1 a INNER JOIN dt2 b on a.id= b.id
select a.id,a.name ,b.price
from dt1 A
inner join dt2 B
on a.id= b.id
DataTable dt1 = new DataTable();
dt1.Columns.Add("ID", typeof(int));
dt1.Columns.Add("Name", typeof(string));
dt1.PrimaryKey = new DataColumn[] { dt1.Columns[0]};
dt1.Rows.Add(1, "Age");
dt1.Rows.Add(2, "Apple");
dt1.Rows.Add(3, "Orange");DataTable dt2 = new DataTable();
dt2.Columns.Add("ID", typeof(int));
dt2.Columns.Add("Price", typeof(decimal));
dt2.PrimaryKey = new DataColumn[] { dt2.Columns[0] };
dt2.Rows.Add(1, 10);
dt2.Rows.Add(2, 6);
dt2.Rows.Add(3, 7);DataTable dt3 = dt1.Copy();
dt3.Merge(dt2);
在此例中"ID"应是关键字了.
DataSet ds = new DataSet();
ds.Tables.Add(dt1);
ds.Tables.Add(dt2);建立 dt1,dt2之间的关系(用ID相联 父表为dt1,子表为dt2 并且父表ID要唯一)
ds.Relations.Add("关系",ds.Tables[0].Columns["ID"],ds.Tables[1].Columns["ID"]);================================================
下面为完成代码 供参考
DataRow dr ;
DataTable dt1 = new DataTable();
dt1.Columns.Add("ID",typeof(System.Int32));
dt1.Columns.Add("name",typeof(System.String));
dr = dt1.NewRow();
dr["ID"] = "1";
dr["name"] = "Age";
dt1.Rows.Add(dr);
dr = dt1.NewRow();
dr["ID"] = "2";
dr["name"] = "Apple";
dt1.Rows.Add(dr);
dr = dt1.NewRow();
dr["ID"] = "3";
dr["name"] = "Orange";
dt1.Rows.Add(dr);DataTable dt2 = new DataTable();
dt2.Columns.Add("ID",typeof(System.Int32));
dt2.Columns.Add("Price",typeof(System.String));
dr = dt2.NewRow();
dr["ID"] = "3";
dr["Price"] = "10";
dt2.Rows.Add(dr);
dr = dt2.NewRow();
dr["ID"] = "1";
dr["Price"] = "6";
dt2.Rows.Add(dr);
dr = dt2.NewRow();
dr["ID"] = "2";
dr["Price"] = "7";
dt2.Rows.Add(dr);
//以上为购建两个DataTable 并赋值DataSet ds = new DataSet();
ds.Tables.Add(dt1);
ds.Tables.Add(dt2);
ds.Relations.Add("关系",ds.Tables[0].Columns["ID"],ds.Tables[1].Columns["ID"]);
//以上为 填充到DataSet 并建立关系foreach(DataRow dt1Row in ds.Tables[0].Rows)
{
Response.Write(dt1Row["ID"].ToString() + "," + dt1Row["name"].ToString()
+ "," + dt1Row.GetChildRows("关系")[0]["Price"].ToString() +"<br>");
}
//以上为显示结果 (注意:父表与子表是1对1得我关系)
1对多的时候 可以用 foreach(DataRow dt1Row in dt1Row.GetChildRows(关系))取得全部相对应子表数据
方法最好
而不是在数据库里面怎么读感觉hbxtlhx(平民百姓)或者xinfan(新凡) 的可行
先测试一下谢谢大家
就要在
dt1.PrimaryKey = new DataColumn[] { dt2.Columns[0] };
dt2.PrimaryKey = new DataColumn[] { dt2.Columns[0] };