C# 更改 DataGridView 中的列标题
Posted
技术标签:
【中文标题】C# 更改 DataGridView 中的列标题【英文标题】:C# Changing Column Headers in DataGridView 【发布时间】:2012-02-14 04:02:03 【问题描述】:我的项目中有一个 datagridview,它是从 SQL 数据库中填充的,代码如下:
public cToDoList(string paramUser, DateTime paramDueDate)
string sqlStat = "SELECT * FROM tblDiary " +
"WHERE DiaryUserFor = @User " +
"AND DiaryDueDate <= @DueDate;";
SqlCommand sqlCom = new SqlCommand(sqlStat);
sqlCom.Parameters.Add("@User", SqlDbType.VarChar);
sqlCom.Parameters.Add("@DueDate", SqlDbType.Date);
sqlCom.Parameters["@User"].Value = paramUser;
sqlCom.Parameters["@DueDate"].Value = paramDueDate.Date;
cSqlQuery sqlQ = new cSqlQuery(sqlCom, "table");
this.cTable = sqlQ.cQueryResults;
上面的代码运行良好,datagridview 已被填充,但是列标题是 SQL 数据库中的字段名称,对用户不是很友好。
我尝试了几件事来尝试更改默认列名,但没有任何效果。到目前为止,我已经尝试过 -
dataToDoList.Columns[0].Name = "TEST1";
dataToDoList.Columns["DiaryCompletedDate"].Name = "TEST2";
但什么都不做。
谁能告诉我如何更改数据网格视图中的列标题名称?
【问题讨论】:
【参考方案1】:试试DataGridViewColumn.HeaderText & AutoGenerateColumns (MSDN)
希望这对你有用。
【讨论】:
【参考方案2】:您需要的确切列是什么..?
Replace the SELECT * with
SELECT ColumnName AS 'TEST1', ColumnName2 AS 'TEST2' FROM ...etc
【讨论】:
事后看来,别名是我的应用程序的最佳解决方案。谢谢。 听起来不错,Pete 很高兴我们中的许多人可以为您指明正确的方向【参考方案3】:你想要Column.HeaderText
,而不是Column.Name
。
或者,使用可视化设计器设置列属性,并在表单构造函数中设置
dataToDoList.AutoGenerateColumns = false;
【讨论】:
【参考方案4】:一种简单的方法是在 SQL 中显式命名您想要的列。
即。用select DiaryCompletedDate [TEST1], OtherColumn [TEST2], ..
等替换select *
(你可能不应该使用它)等
【讨论】:
【参考方案5】:在对网格进行数据绑定时,您可以像这样更改 HeaderText
this.dataGridView1.Columns["ResourceValue"].HeaderText = Helper.getlocalStringResource("Xinga.LocalStrings.ColumnHeader.ResourceValue");
【讨论】:
以上是关于C# 更改 DataGridView 中的列标题的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 c# winforms 中的列日期和名称将 sql 中的数据输入到特定的 datagridview 单元格中
c#中datagridview中datasource反复赋值没有变化?