我的项目中有一个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";
但是什么也没做。
有人可以告诉我如何在datagridview中更改列标题名称吗?
答案 0 :(得分:3)
尝试DataGridViewColumn.HeaderText&amp; AutoGenerateColumns(MSDN)
希望这适合你。
答案 1 :(得分:2)
您需要Column.HeaderText
,而不是Column.Name
。
或者,使用可视化设计器和表单构造函数集
设置列属性dataToDoList.AutoGenerateColumns = false;
答案 2 :(得分:2)
您需要的确切列是什么?
Replace the SELECT * with
SELECT ColumnName AS 'TEST1', ColumnName2 AS 'TEST2' FROM ...etc
答案 3 :(得分:1)
一种简单的方法是在SQL中显式命名所需的列。
IE中。用select *
等替换select DiaryCompletedDate [TEST1], OtherColumn [TEST2], ..
(你可能不应该使用它)
答案 4 :(得分:1)
在对网格进行数据绑定时,您可以像这样更改HeaderText
this.dataGridView1.Columns["ResourceValue"].HeaderText = Helper.getlocalStringResource("Xinga.LocalStrings.ColumnHeader.ResourceValue");