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语句,各位帮帮忙,谢谢!
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语句,各位帮帮忙,谢谢!
自己写HEADERTEXT
<asp:BoundField HeaderText="姓名" value="Name" />
也就是说 编号 姓名 年龄 Code Name Age
.... .... ...
Code Name Age
.... .... ...这部分都不生成。那绑定数据还有什么意义
#1楼的正确,你需要指定绑定列,或者你可以修改DataTable.Columns[0].Caption
然后用的时候取出来,因为字段名称对应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你要自己去实现了.
赋予字段 中文名称, 而又不引入量的地方,微软的绑定机制好多也知道 有 这个 Caption 的存在使用 Caption 指定中文名称, 值得知道.
比如第一个已存在的列"编号"
dataGridView.Columns["编号"].DataPropertyName="Code";//这个Code是绑定的数据表里对应的列名
dataGridView.Columns.Remove("Code");