日期:2014-05-19  浏览次数:21029 次

紧急求助!DataGridView动态表的生成
有这样一个问题:
两张表,分别如下:
表1                                                                         表2
      id               Name1                         Name2       id       value
      01                 aaa                             AAA         01           1
      02                 bbb                             AAA         02           2
                                                            BBB         01           3
                                                            BBB         02           4

现在想用DataGridView动态创建这样的表
Name2           aaa             bbb
  AAA               1                 2
  BBB               3                 4

请问如何实现DataGridView的维护
得到正确回答后马上结分

------解决方案--------------------
要搞定DataGridView,就要先搞定DataTable,然后换成DataSet,用DataSet绑定DataGridView

private DataSet MergeTable(DataSet dsColumn, DataSet dsValue)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
DataColumn dc = new DataColumn();

// 加入第一列
dc = new DataColumn( "Name2 ",(Type) "String ");
dt.Column.Add(dc);

// 根据表1加入其他列
foreach (DataRow dr in dsColumn.Rows)
{
dc = new DataColumn(dr[ "ColumnName "].ToString(), (Type) "Int32 ");
dt.Columns.Add(dc);
}
}
// 这时候,新的DataTable已经建立起来了,格式为
// Name2 aaa bbb 表格是空的
// 写入新值,写到DataTable dt中,偶就不写了……
// 装载数据表
ds.Tables.Add(dt)
return ds
}
------解决方案--------------------
大致思路是,取得表1中Name1 字段内容,根据内容创建对应类,然后生成一个DataTable。此外根据表1中字段 Name1对应的id来匹配表2中对应id ,然后取得表2中value列的值。

楼主,貌似难度不大,只要实现成代码就行了。

------解决方案--------------------
如果可以的话直接在数据库里生成一个view(源自你要得两张表),然后直接给DataGridView使用
------解决方案--------------------

=================给你一个 容易懂的方法===============================
string sql= "select 表2.Name2, 表1.Name1,表2.Value from 表2 inner join 表1 on 表1.id=表2.id ";
SqlConnection conn = new SqlConnection( "Server=.;Database=master;Integrated Security=SSPI ");
SqlDataAdapter da = new SqlDataAdapter(sql,conn);
DataSet ds = new DataSet();