在WINFORM里动态添加列
string colName = dt_Comp.Rows[i]["COMPANY_NAME"].toString();
dataTable.Columns.Add(new DataColumn(colName, Type.GetType("System.String")));
列名是从数据库里读的字段,
现在我想在动态添加的列里面显示出SQL查询出来的值,就是把值加进动态生成的列里面,请问该如何做呢?

解决方案 »

  1.   


     你可以这样做
    System.Web.UI.WebControls.BoundColumn bocolumnDLName = new BoundColumn();
    bocolumnDLName.HeaderText = "列表名称";
    bocolumnDLName.DataField = "IDName";
    MyList.Columns.AddAt(MyList.Columns.Count,bocolumnDLName);
      

  2.   

    string colName = dt_Comp.Rows[i]["COMPANY_NAME"].toString();
    dataTable.Columns.Add(new DataColumn(colName, Type.GetType("System.String")));
    // 修改第一行,新生成列的值
    dataTable.Rows[0]["COMPANY_NAME"] = "新加入的值";
      

  3.   

    用BearRui的方法。但是报错。说COMPANY_NAME列不存在
      

  4.   

    dataTable.Rows[0]["COMPANY_NAME"] = "新加入的值";
    改一下
    dataTable.Rows[0]["colname"] = "新加入的值";
      

  5.   

    写错了,是这个:
    string colName = dt_Comp.Rows[i]["COMPANY_NAME"].toString();
    dataTable.Columns.Add(new DataColumn(colName, Type.GetType("System.String")));
    // 修改第一行,新生成列的值
    dataTable.Rows[0][colName] = "新加入的值";
      

  6.   

    dataTable.Columns.Add(new DataColumn(dt_Comp.Rows[i]["COMPANY_NAME"].toString(), Type.GetType("System.String")));
    dataTable.Rows[0][dt_Comp.Rows[i]["COMPANY_NAME"].toString()] = "新加入的值"
      

  7.   

    dataTable.Rows[0][colName] = "新加入的值";
    但是‘新加入的值’是要从SQL里查询出来的~。怎么弄也。。我不会。。C#初学。请各位指点下
      

  8.   

    但是‘新加入的值’是要从SQL里查询出来的~。怎么弄也。。我不会。。C#初学。请各位指点下
    --------------------
    你先把从SQL查询出来的值赋给1个变量,然后在用上面的代码把变量的值付给dataTable.Rows[0][colName]
      

  9.   

    BearRui开心熊真仗义。。我是把值存放在DATATABLE里的怎么弄哦。。
      

  10.   

    我用的是     foreach (DataRow row in dt_Comp.Rows)
                        {
    dataTable.Rows[0][colName] = row["CONTRACT_COUNT"];                      }
    这种方法+的,但始终是+的最后1条数据
    还有个问题,就是。动态添加列的时候,由于是用的COMPANY_NAME来添加,如果数据库里有2条
    COMPANY_NAME值是一样的,那添加就会因为列名1样而报错,该如何判断1下呢?
      

  11.   

    你现在是不知道怎么把数据从数据库读到datatable,还是不知道怎么把datatable1中的值付给datatable2。---------------------
    还有个问题,就是。动态添加列的时候,由于是用的COMPANY_NAME来添加,如果数据库里有2条
    COMPANY_NAME值是一样的,那添加就会因为列名1样而报错,该如何判断1下呢?string colName = dt_Comp.Rows[i]["COMPANY_NAME"].toString();
    // 判断,当没有这个列的时候才添加列
    if (!dataTable.Columns.Contains(colName))
       dataTable.Columns.Add(new DataColumn(colName, Type.GetType("System.String")));
      

  12.   

    我把数据填充在DATATABLE里面,就是不知道如何取出来
      

  13.   

    foreach (DataRow row in dt_Comp.Rows)
    {
    dataTable.Rows[0][colName] = row["CONTRACT_COUNT"];}
    -----------------------
    如果你的dataTable和dt_Comp的行数是一样多的话就这样:for(int k=0;k<dt_Comp.Rows.Count;k++)
    {
    dataTable.Rows[k][colName] = dt_Comp.Rows[k]["CONTRACT_COUNT"];
    }
      

  14.   

    我如何让动态添加的列不在GRID里显示
      

  15.   

    Datagrid.Columns[0].Visible =false;
      

  16.   

    没有Columns阿还有,我是根据部门的COMBO来查询数据库然后绑定GRID,现在,假如部门选1,动态添加了2列,但选择2,仍然保留了这几列COLUMN