C#在DataGridView中更改列标题

时间:2012-01-19 13:40:13

标签: c# sql datagridview

我的项目中有一个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中更改列标题名称吗?

5 个答案:

答案 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");