DataGirdView里面以有列名:编号 姓名 年龄 
DataGirdView  绑定数据后:编号 姓名 年龄  Code Name Age
                                          .... .... ...SQL语句:select Code, Name ,Age form Table
DataSet Info= Nactor.GetInfo();//..获取数据
this.dataGridView1.DataSource = Info.Tables[0];
这样的情况有什么好的解决办法?有一般办法就是  SQL语句select Code as 编号, Name as 姓名,Age as 年龄 form Table
然后在绑定数据前 把dataGridView1原来的列给删除.
不过我感觉这样做不太好,如果以后要改“编号”成“代号”或者别的,那太麻烦了。还得找SQL语句,各位帮帮忙,谢谢!

解决方案 »

  1.   

    取消自动生成字段。
    自己写HEADERTEXT
    <asp:BoundField HeaderText="姓名" value="Name" />
      

  2.   

       <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">设置这个
      

  3.   

    补充:我是的Winform,AutoGenerateColumns="False"  这个是不自动生成列,
    也就是说  编号 姓名 年龄 Code Name Age
                          .... .... ...
    Code Name Age
    .... .... ...这部分都不生成。那绑定数据还有什么意义
      

  4.   


    #1楼的正确,你需要指定绑定列,或者你可以修改DataTable.Columns[0].Caption 
      

  5.   

    dataGridView1.Columns[0].HeaderText=""; 
      

  6.   

    如果要以后修改方便一点,在数据库表字段的"说明"里面把字段的意义写上去
    然后用的时候取出来,因为字段名称对应DataTable.Columns[0].ColumnName,所以可以将字段说明赋给DataTable.Columns[0].Caption属性.那么怎么取字段说明呢?给你一个视图吧:
    --视图当中deText就是字段的描述说明,你将deText赋给Caption就可以了
    CREATE view [dbo].[V_hr_GetColumnInfo] as
    (
    SELECT     C.column_id AS colorder, C.name AS ColumnName, T.name AS TypeName, 
                          CASE WHEN T .name = 'nchar' THEN C.max_length / 2 WHEN T .name = 'nvarchar' THEN C.max_length / 2 ELSE C.max_length END AS Length, 
                          C.precision AS Preci, C.scale, ISNULL(PFD.value, N'') AS deText, ISNULL(O.name, N'') AS TableName 
    FROM         sys.columns AS C INNER JOIN
                          sys.objects AS O ON C.object_id = O.object_id AND (O.type = 'U' OR
                          O.type = 'V') AND O.is_ms_shipped = 0 INNER JOIN
                          sys.types AS T ON C.user_type_id = T.user_type_id LEFT OUTER JOIN
                          sys.extended_properties AS PFD ON PFD.class = 1 AND C.object_id = PFD.major_id AND C.column_id = PFD.minor_id
    )
    至于取出字段视图中的字段意义赋给Caption你要自己去实现了.
      

  7.   

    DataTable.Columns[0].Caption 这个正办最合适的
    赋予字段 中文名称, 而又不引入量的地方,微软的绑定机制好多也知道 有 这个 Caption 的存在使用 Caption 指定中文名称, 值得知道.
      

  8.   

    关闭自动生成列的功能,我知道  那怎么把dataset绑定到已经知道的列下?
      

  9.   

    设置已有列的DataPropertyName属性,然后把绑定过来表的列从datagridview的列集合里移动
    比如第一个已存在的列"编号"
    dataGridView.Columns["编号"].DataPropertyName="Code";//这个Code是绑定的数据表里对应的列名
    dataGridView.Columns.Remove("Code");