只用一个datagrid, 运行不同的sql得到不同的数据源, 要求datagrid的表头同时变化,显示不同的中文名称, 或者有没有办法修改datagrid的列名

解决方案 »

  1.   

    BoundColumn tmpColumn = new BoundColumn();
     tmpColumn.HeaderText = "姓名";
     tmpColumn.DataField = "name";
      this.dg.Columns.Add(tmpColumn);如果要改
     BoundColumn tmpColumn = dg.Columns[0] as BoundColumn;
    tmpColumn.HeaderText = "年龄";
     tmpColumn.DataField = "age";
      

  2.   

    在sql中用别名
    select name as 姓名 from .... where.....
      

  3.   

    if (s_period.Substring(s_period.Length-2,2)=="上期") 
    {
    this.DataGrid2.Columns[2].HeaderText="4月";
    this.DataGrid2.Columns[3].HeaderText="5月";
    this.DataGrid2.Columns[4].HeaderText="6月";
    this.DataGrid2.Columns[5].HeaderText="7月";
    this.DataGrid2.Columns[6].HeaderText="8月";
    this.DataGrid2.Columns[7].HeaderText="9月";
    }
    else
    {
    this.DataGrid2.Columns[2].HeaderText="10月";
    this.DataGrid2.Columns[3].HeaderText="11月";
    this.DataGrid2.Columns[4].HeaderText="12月";
    this.DataGrid2.Columns[5].HeaderText="1月";
    this.DataGrid2.Columns[6].HeaderText="2月";
    this.DataGrid2.Columns[7].HeaderText="3月";

    }
      

  4.   

    如果仅仅是显示内容,无其他格式要求,那么zpisgod(GOD) 的做法可以满足要求,不过要注意DataGrid要设为动态绑定。如果有其他格式要求,就得用 Eddie005(暴走005) 的办法了,虽然很烦,但这是唯一办法。
      

  5.   

    Dim MyCol As BoundColumn
            Dim N As Integer
            Dim MyHeard() As String = {"序号", "单位", "日期"}
            Dim MyField() As String = {"ID", "Company", "Date"}
            Dim MyFormat() As String = {"", "", "{0:yyyy/MM/dd}"}
            N = 0
            For Each MyCol In Datagrid1.Columns
                MyCol.HeaderText = MyHeard(N)
                MyCol.DataField = MyField(N)
                MyCol.DataFormatString = MyFormat(N)
                N += 1
            Next这是在列数相等的情况下,如果不相等,再进行相应的增减就可以了。
      

  6.   

    其实,它的表头是根据你的SELECT语句所选择的字段名来显示的,
    如果你查询时给列定义中文字段名,自然会变化了。
    SELECT Name 姓名Sex 性别 FROM Information,显示的就是姓名,性别了,最简单的方法。
      

  7.   

    字段的表头是根据你查询出来的数据字段的名称来命名的,其实你只要把写一个方法来返回不同的数据集然后再把数据集绑定到DataGrid就可以实现你的目的了。
    如:private DataSet GetData(string sqlquery)
    {
    //执行你的sql语句得到数据集return dataset;
    }
    DataSet ds=GetData("select * from table1");
    DataGrid1.DataSource=ds;
    DataGrid1.Bingding;