我们在数据库存放的表结构中字段名一般都不是中文,但是我们经常要在表头中显示中文,一般显示中文有以下三种方法: 第一种:通过SQL查询语句的AS来改名,例如Pubs库的Jobs表我们可以写如下SQL: select job_id as 编号,job_desc as 说明,min_lvl as 最小级,max_lvl as 最高级 from jobs; 这种方法还有简单的做法就是在数据库中建立视图,然后从视图来查询
第二种:我们可以通过DataTable的Columns集合中DataColumn对象的ColumnName属性来改变显示标题,例如: dtJobs.Columns[0].ColumnName="编号"; 这种做法的缺点是如果你想使用DataAdapter的Update方法将数据更新到数据库时需要重新改回原来的列名。
第三种:我们可以通过修改DataGrid来完成修改显示表标题:
在DataGrid的属性中有一个TableStyles属性,其中放置的是DataGridTableStyle对象,DataGridTableStyle对象用来描述DataGrid的样式,DataGridTableStyle对象中又有一个GridColumnStyles集合对象,GridColumnStyles放置的是GridColumnStyle对象,GridColumnStyle对象中包含了每一列数据显示的样式,其属性HeaderText就是我们要找的标题,还有Width表示每一列的宽度,如果要隐藏某一列只需要将这一列的Width=0即可,好了找到了这个对象我们就或以写一个通用类来控制每一张表的标题了。当然我们也可以直接操作DataGridTableStyle,例如要将DataGrid中的一列名为"Name"的改为"NO.",代码如下:
dataGrid1.TableStyles.Clear();//为了保险,这个加上 DataGridTableStyle myGridTableStyle = new DataGridTableStyle(); myGridTableStyle.MappingName="MyTableName"; //这个不能少 DataGridTextBoxColumn mycol=new DataGridTextBoxColumn(); mycol.MappingName="Name"; //与数据源绑定的字段 mycol.HeaderText = "No."; //DataGird显示的列名 myGridTableStyle.GridColumnStyles.Add(mycol); dataGrid1.TableStyles.Add(myGridTableStyle);
这样DataGrid中显示的就不是“Name”而是“NO.”了。