数据库中A表的数据如下。
AnalystID PeriodID Name Label
------ -------- ------------------------- -------
1 1 Morgan Keegan 1 Year
1 2 Morgan Keegan 2 Years
1 3 Morgan Keegan 3 Years
4 1 Oppenheimer & Company 1 Year
4 2 Oppenheimer & Company 2 Years
4 3 Oppenheimer & Company 3 Years
8 1 Hilliard Lyons 1 Year
8 2 Hilliard Lyons 2 Years
8 3 Hilliard Lyons 3 Years
9 1 RBC Capital Markets 1 Year
9 2 RBC Capital Markets 2 Years
9 3 RBC Capital Markets 3 Years在DataTable对象中的数据如下:
AnalystID PeriodID Value
----------- ----------- -----------
1 1 390
1 2 412
1 3 415
4 1 494
4 2 518
4 3 525
8 1 122
8 2 128
8 3 133
9 1 1232
9 2 1311
9 3 1363如何做到我要的结果显示在DataGrid中,效果如下:
AnalystID PeriodID Name Label Value
------ -------- ------------------------- ------- -----------
1 1 Morgan Keegan 1 Year 390
1 2 Morgan Keegan 2 Years 412
1 3 Morgan Keegan 3 Years 415
4 1 Oppenheimer & Company 1 Year 494
4 2 Oppenheimer & Company 2 Years 518
4 3 Oppenheimer & Company 3 Years 525
8 1 Hilliard Lyons 1 Year 122
8 2 Hilliard Lyons 2 Years 128
8 3 Hilliard Lyons 3 Years 133
9 1 RBC Capital Markets 1 Year 1232
9 2 RBC Capital Markets 2 Years 1311
9 3 RBC Capital Markets 3 Years 1363
AnalystID PeriodID Name Label
------ -------- ------------------------- -------
1 1 Morgan Keegan 1 Year
1 2 Morgan Keegan 2 Years
1 3 Morgan Keegan 3 Years
4 1 Oppenheimer & Company 1 Year
4 2 Oppenheimer & Company 2 Years
4 3 Oppenheimer & Company 3 Years
8 1 Hilliard Lyons 1 Year
8 2 Hilliard Lyons 2 Years
8 3 Hilliard Lyons 3 Years
9 1 RBC Capital Markets 1 Year
9 2 RBC Capital Markets 2 Years
9 3 RBC Capital Markets 3 Years在DataTable对象中的数据如下:
AnalystID PeriodID Value
----------- ----------- -----------
1 1 390
1 2 412
1 3 415
4 1 494
4 2 518
4 3 525
8 1 122
8 2 128
8 3 133
9 1 1232
9 2 1311
9 3 1363如何做到我要的结果显示在DataGrid中,效果如下:
AnalystID PeriodID Name Label Value
------ -------- ------------------------- ------- -----------
1 1 Morgan Keegan 1 Year 390
1 2 Morgan Keegan 2 Years 412
1 3 Morgan Keegan 3 Years 415
4 1 Oppenheimer & Company 1 Year 494
4 2 Oppenheimer & Company 2 Years 518
4 3 Oppenheimer & Company 3 Years 525
8 1 Hilliard Lyons 1 Year 122
8 2 Hilliard Lyons 2 Years 128
8 3 Hilliard Lyons 3 Years 133
9 1 RBC Capital Markets 1 Year 1232
9 2 RBC Capital Markets 2 Years 1311
9 3 RBC Capital Markets 3 Years 1363
解决方案 »
- 如何在母版页添加CSS?在线等。
- 问一个关于点击率统计的问题
- asp.net监听页面变化的事件,window.addEventListener和document.addEventListener
- 哪里有treeview控件下啊,找半天没找到,找到的地址都下不了
- 请教 aspx.cs文件里写代码的问题
- 各位高手请教一个问题,如何过滤提交上来的数据
- 用asp.net开发web程序的朋友们进来,共同鉴赏!
- 请问:
- 为什么不能使用System.Drawing.Image.FromFile(fileName);读取Gif文件
- WEB打印,框架页
- GridView选择事件~~
- 如何使WEB2.0中的母板页不刷新??
其次你可以对A表记录进行循环,根据字段,过滤表B的结果集例如datatable.Select("AnalystID=1 and PeriodID=1")来进行DataTable合并
select a.*,b.value from aaa as a,bbb as b
where a.AnalystID=b.AnalystID and a.PeriodID=b.PeriodID
string sql = null; // such as "SELECT AnalystID PeriodID Name Label FROM MyTable"; // WHERE xxx=yyy
string connStr = null; // such as "server=.;database=mydb;uid=sa;pwd=";
// ...
SqlConnection conn = new SqlConnection(connStr);
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
// dt1 表示你数据库中的那个 表A
DataTable dt1 = new DataTable("表A");
da.Fill(dt1);
// ...
// 为 dt1 添加列
dt1.Columns.Add("Value ", typeof(int));
// dt2 表示你内存中的那个 DataTable
DataTable dt2 = null;
// ... // 遍历 dt2,拷贝列 Value 到 dt1
for (int i = 0; i < dt2.Rows.Count; i++) {
DataRow[] drArr1 = dt1.Select(String.Format("AnalystID={0} AND PeriodID={1}", dt2.Rows[i]["AnalystID"], dt2.Rows[i]["PeriodID"]));
foreach (DataRow dr in drArr1) {
dr["Value"] = dt2.Rows[i]["PeriodID"];
}
}
// 绑定数据
// MyDataGrid.DataSource = dt1;
// MyDataGrid.DataBind();;
如:dt1.Columns.Add("Value ", typeof(int));然后遍历这个DataTable再把另一个DataTable的数据塞进去.
解决问题有两个方法,楼上也都有人说了:
一、把DataTable的数据插入临时表中,然后用Sql操作数据库
二、把数据库表的数据查询出来,存入DataTable,然后用DotNet来操作这两个DataTable
用Jinglecat(晓风残月)的