由于要检索的表都是动态生成的,所以各个表中的字段并不清楚,只能根据程序来判断,所以在设置datagrid的时候也是选择的"创建时自动生成",这样生成的表格标题都是些字段名,该怎么才能把这些标题改成汉语呢?
请高手指点思路~

解决方案 »

  1.   

    生成表格的列的名称是否试固定的?
    如果是:
    private void dataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
      if(e.Item.ItemType == ListItemType.Header)
       {
           foreach(TableCell cell in e.Item.Cells)
           { 
                cell.Text = Format(cell.Text);
           }
       }
    }private string Format(string str)
    {
       string s="";
       switch(str)
        {
            case "A":
              s="你";
              break;
            ……………………
            default:
              s="未知";
         }
       return s;
    }如果连列的名称不确定,那我想就有点困难了
      

  2.   

    把各个表的字段名称,中文名,表名,等属性放到一个表里,设其表为type
    type结构为:
    ename   cname       tname
    内容:
    y1       中1        table1
    y2       中2        table1
    ya1      中文1      table2
    ya2      中文2      table2
    yy1      中文字段1  table3
    yy2      中文字段2  table3
    设置datagrid时不要选择"创建时自动生成",采用绑定列,或模板列,根据表名称检索type表中的字段
      

  3.   

    string sql = "select * from type where tname = '"+DropDownList1.SelectedValue+"'";
    DataSet myDs = mySql.GetDataSet(sql,"type");
    BoundColumn Bc ;
    for(int i=0; i<myDs.Tables[0].Rows.Count; i++)
    {
    Bc =new BoundColumn();
    Bc.DataField = myDs.Tables[0].Rows[i]["ename"].ToString();
    Bc.HeaderText = myDs.Tables[0].Rows[i]["cname"].ToString();
    DataGrid1.Columns.Add(Bc);
    } string sql1 = "select * from "+DropDownList1.SelectedValue+" ";
    DataSet myDs1 = mySql.GetDataSet(sql1,DropDownList1.SelectedValue);
    DataGrid1.DataSource = myDs1;
    DataGrid1.DataBind();
      

  4.   

    这个在数据库里面做比较方便。select的时候使用别名,不要使用原始的字段名。
      

  5.   

    在sql语句中判断
    select name as '姓名' from table