1、如何在winform的DataGrid中设置ColumnHeader的值,如select AA,BB from table绑订到DataGrid
  ColumnHeader就会显示AA,BB。
   能不能直接设置这个值,不用select语句?2、如何在DataGrid中插入空白的行。
3、如何计算DataGrid中同一行中第一列和第二列的和,结果添加到第三列?
   谢谢。

解决方案 »

  1.   

    1。用数据绑定。
    2。绑定数据了new一条新数据。
      

  2.   

    1 Tablestyle
    public static void IniControl_dg(string[] column,string[] name,string table,DataGrid dg)
    {
    //column:需要显示的列
    //name:显示的列的别名
    //table:表名
    //dg:控件
    SqlConnection conn=new SqlConnection(@"Data Source=(local);Integrated Security=SSPI;Initial Catalog=jgoa");
    //conn.Open();
    string selectcom="select * from "+table+" "+conditions;
    SqlDataAdapter dapt=new SqlDataAdapter(selectcom,conn); 
    DataSet ds=new DataSet();
    dapt.Fill(ds,"new");
    dg.DataSource=ds;
    dg.DataMember="new";

    try
    {
    dg.TableStyles.Clear();
    DataGridTableStyle MyStyle = new DataGridTableStyle();
    MyStyle.MappingName = "new";
    MyStyle.RowHeadersVisible=false;
    dg.TableStyles.Add(MyStyle); //将列表中的列全部隐藏
    foreach(DataColumn col in ds.Tables["new"].Columns)
    {
    MyStyle.GridColumnStyles[col.ColumnName].Width=0;
    } //显示需要显示的列,并更名.
    foreach(DataColumn col in ds.Tables["new"].Columns)
    {
    for(int i=0;i<column.Length;i++)
    {
    if(col.ColumnName==column[i])
    {
    //MessageBox.Show(column[i]);
    MyStyle.GridColumnStyles[column[i]].HeaderText=name[i];
    MyStyle.GridColumnStyles[column[i]].Width=dg.Width/column.Length;
    }
    }
    }

    }
    catch(Exception exc)
    {
    MessageBox.Show(exc.Message);
    } }
      

  3.   

    1:可以通过ColumnName 属性达到要求!
    DataTable dt;
    dt=new DataTable();
    dt.Columns.Add("tt");
    dt.Columns.Add("aa");
    dt.Columns.Add("cc");
    dt.Columns.Add("dd");
    dt.Columns.Add("ee");
    for (int i=0 ;i<10 ;i++)
    {
    DataRow dr=dt.NewRow();
    dr[0]=i+1;
    dr[1]=i+2;
    dr[2]=i+3;
             dr[3]=i+4;
    dr[4]=i+5;
    dt.Rows.Add(dr);
    }
    dt.Columns[0].ColumnName="第一列";
    dataGrid1.DataSource=dt;
      

  4.   

    DG的TableStyle的属性里面可以设置显示的文字。
      

  5.   

    2:用dt.Rows.Add()方法!

    DataRow dr=dt.NewRow();
    dt.Rows.Add(dr);
      

  6.   

    3:用Expression方法:
    DataTable dt1;
    dt1=new DataTable();
    dt1.Columns.Add("tt");
    dt1.Columns.Add("aa");
    dt1.Columns.Add("cc");
    dt1.Columns.Add("dd");
    dt1.Columns.Add("ee");
    for (int i=0 ;i<10 ;i++)
    {
    DataRow dr=dt1.NewRow();
    dr[0]=i+1;
    dr[1]=i+2;
    dr[2]=i+3;
    dr[3]=i+4;
    dr[4]=i+5;
    dt1.Rows.Add(dr);
    }
    dt1.Columns.Add("rr");
    dt1.Columns[5].Expression="Convert(tt, 'System.Int32')+Convert(aa, 'System.Int32')";
    dataGrid1.DataSource=dt1;
      

  7.   

    1.通过dataGrid属性中的TableStyle来设计。
    2.DataRow NewRow=DataTable.NewRow();
      DataTable.Rows.Add(NewRow);
    3.我觉得你可以通过数据库表中的属性来定义,
    比如某一列的formula 为([id] + [state])这样就可以了。