我有个数据库DB里有Name,Sex,Address,对应的中文也就是(姓名,性别,地址)。用dataGrid的dataset数据集填充时,在dataGrid窗口中显示的就是(Name,Sex ,Address)英文字段名,但我想在dataGrid窗口的显示的是中文名称,请问怎么才能装对应的英文显示成中文,就是在窗口中显示为“姓名,性别,地址列

解决方案 »

  1.   

    楼上的兄弟,请说具本一点啊,我试了TableStyle 这里面只能使dataGrid在程序窗口中出现中文列表名了,在运行中就不会出现中文了,还是英文的,右键-》属性生成器
    里面有自带的功能   ????什么意思啊,属性生成器在哪里啊,
      

  2.   

    /*******Product表********/
    DataTable dt=new DataTable("Product");
    dt.Columns.Add("Product_Id");
    dt.Columns[0].Caption="ID";
    dt.Columns[0].AutoIncrement=true;
    dt.Columns[0].AutoIncrementSeed=1;
    dt.Columns[0].DataType=typeof(int); dt.Columns.Add("Product_Name");
    dt.Columns[1].Caption="产品名称";
    dt.Columns[1].DataType=typeof(string); dt.Columns.Add("Product_Date");
    dt.Columns[2].Caption="产品日期";
    dt.Columns[2].DataType=typeof(DateTime); dt.Columns.Add("Product_Amount");
    dt.Columns[3].Caption="产品数量";
    dt.Columns[3].DataType=typeof(int); dt.Columns.Add("Product_Price");
    dt.Columns[4].Caption="产品价格";
    dt.Columns[4].DataType=typeof(float); dt.Columns.Add("ExtendedPrice");
    dt.Columns[5].Caption="总价";
    dt.Columns[5].Expression="Product_Amount*Product_Price"; //创建列的表达式 DataRow dr=dt.NewRow();
    dr[1]="主板";
    dr[2]="2005-9-28";
    dr[3]=10;
    dr[4]=680;
    dt.Rows.Add(dr); dr=dt.NewRow();
    dr[1]="机箱";
    dr[2]="2005-10-2";
    dr[3]=5;
    dr[4]=105.53;
    dt.Rows.Add(dr); dr=dt.NewRow();
    dr[1]="硬盘";
    dr[2]="2005-8-29";
    dr[3]=42;
    dr[4]=450;
    dt.Rows.Add(dr);
    /******************************/ /*******ProductDetail表********/
    DataTable dt1=new DataTable("ProductDetail");
    dt1.Columns.Add("Product_Name");
    dt1.Columns[0].Caption="产品名称";
    dt1.Columns[0].DataType=typeof(string); dt1.Columns.Add("ProductDetail_Text");
    dt1.Columns[1].Caption="使用说明";
    dt1.Columns[1].DataType=typeof(string); dr=dt1.NewRow();
    dr[0]="主板";
    dr[1]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    dt1.Rows.Add(dr); dr=dt1.NewRow();
    dr[0]="机箱";
    dr[1]="@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@";
    dt1.Rows.Add(dr);
    /*****************************/
    ds.Tables.Add(dt);
    ds.Tables.Add(dt1); DataColumn ParentCol=dt.Columns[1];
    DataColumn ChildCol=dt1.Columns[0];
    DataRelation drel=new DataRelation("Detail",ParentCol,ChildCol);
    ds.Relations.Add(drel);
    //ds.Tables["Product"].Columns.Add("ExtendedPrice",typeof(float),"Product_Amount*Product_Price");
    //ds.Tables["Product"].Columns[5].Caption="总价"; DataGridTableStyle TS=new DataGridTableStyle();
    TS.AlternatingBackColor=Color.FromArgb(((System.Byte)(241)), ((System.Byte)(244)), ((System.Byte)(250)));
    TS.BackColor=Color.White;
    TS.DataGrid=DG;
    TS.GridLineColor = System.Drawing.Color.FromArgb(((System.Byte)(102)), ((System.Byte)(153)), ((System.Byte)(204)));
    TS.HeaderBackColor = System.Drawing.Color.FromArgb(((System.Byte)(201)), ((System.Byte)(212)), ((System.Byte)(234)));
    TS.HeaderForeColor = System.Drawing.SystemColors.ControlText;
    TS.MappingName=dt.TableName.ToString();
    TS.PreferredRowHeight = 20;
    TS.RowHeaderWidth = 10;
    DG.TableStyles.Add(TS);
    for(int i=0;i<dt.Columns.Count;i++)
    {
    DataGridTextBoxColumn TC=new DataGridTextBoxColumn();
    TC.HeaderText=dt.Columns[i].Caption;
    TC.MappingName=dt.Columns[i].ColumnName;
    TC.Width=dt.Columns[i].Caption.ToCharArray().Length*20;
    DG.TableStyles[0].GridColumnStyles.Add(TC);
    } DG.CaptionText="产品明细表";
    DG.SetDataBinding(ds,"Product");
      

  3.   

    我给你来个简单的
    把sql语句换成如下即可select name as 姓名,sex as性别,address as地址 from tables
      

  4.   

    我是用dataGrid绑定到dataset上面的,因为这个dataGrid将做为多个查询结果共用的,而不是用DataTable表格了,所以楼上的兄弟这方法不太适合我,但还是挺有参考的,先谢谢了,我慢慢研究。   还有哪位高人能具体针对我的问题给予指点!!!
      

  5.   

    如以下代码所示即可解决.
    我用的是.net2.0中的GridView,你将其换在DataGrid即可.        <asp:GridView ID="GridView1" runat="server">
            <Columns>
            <asp:BoundField HeaderText="你要显示的中文名称" DataField="数据库字段名" />
            <asp:TemplateField HeaderText="你要显示的中文名称">
            <ItemTemplate>
                <asp:Label ID="Label1" runat="Server"><%#DataBinder.Eval(Container.DataItem,"数据库字段名" %></asp:Label>
            </ItemTemplate>
            </asp:TemplateField>
            </Columns>
            </asp:GridView>
      

  6.   

    <Columns>
    <asp:BoundColumn DataField="数据库字段名" SortExpression="EmployeeID" HeaderText="要显示的中文名"><HeaderStyle Width="30px"></HeaderStyle>
    </asp:BoundColumn>
    </Columns>
      

  7.   

    select Name as [姓名],Sex as [性别],Address as [地址] from tablename
      

  8.   

    绑定数据
      。
      。
      。
    DataGridTableStyle dataGridTableTargetStyle = null;
    DataGridTextBoxColumn dataGridTextBoxColumn = null;
    dataGridTableTargetStyle = new DataGridTableStyle();
    dataGridTableTargetStyle.MappingName = DataSet.Tables["UserInfo"].TableName;
    //DataSet.Tables["UserInfo"]数据表
    dataGridTableTargetStyle.AlternatingBackColor = Color.Gainsboro;
    dataGridTableTargetStyle.SelectionBackColor = Color.Blue;
    dataGridTableTargetStyle.RowHeadersVisible = false;
    dataGridTextBoxColumn = new DataGridTextBoxColumn();
    dataGridTextBoxColumn.MappingName = "UserInfoID";
    dataGridTextBoxColumn.HeaderText = "UserInfoID";
    dataGridTextBoxColumn.Width = 0;
    dataGridTableTargetStyle.GridColumnStyles.Add(dataGridTextBoxColumn);dataGridTextBoxColumn = new DataGridTextBoxColumn();
    dataGridTextBoxColumn.MappingName = "Name";
    dataGridTextBoxColumn.HeaderText = "姓名";
    dataGridTextBoxColumn.Width = 30;
    dataGridTableTargetStyle.GridColumnStyles.Add(dataGridTextBoxColumn);dataGridTextBoxColumn = new DataGridTextBoxColumn();
    dataGridTextBoxColumn.MappingName = "Sex";
    dataGridTextBoxColumn.HeaderText = "性别";
    dataGridTextBoxColumn.Width = 20;
    dataGridTableTargetStyle.GridColumnStyles.Add(dataGridTextBoxColumn);DataGrid1.TableStyles.Add(dataGridTableTargetStyle);
      

  9.   

    在DataGrid上为DataSet中的每一个DataTable建立TableStyle,这样,当改变DataGrid.DataSource时,会自动匹配对应的TableStyle