C # Изменение заголовков столбцов в DataGridView - PullRequest
4 голосов
/ 19 января 2012

В моем проекте есть сетевое представление, которое заполняется из базы данных 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;
    }

Приведенный выше код работает нормально, и сетевое представление заполнено, однако заголовки столбцовимена полей из базы данных SQL, которые не очень удобны для пользователя.

Я попытался несколько вещей, чтобы попытаться изменить имена столбцов по умолчанию, но ничего не работает.До сих пор я пытался -

dataToDoList.Columns[0].Name = "TEST1";

dataToDoList.Columns["DiaryCompletedDate"].Name = "TEST2";

Но ничего не делать.

Может кто-нибудь сказать мне, как изменить имена заголовков столбцов в таблице данных, пожалуйста?

Ответы [ 5 ]

3 голосов
/ 19 января 2012

Попробуйте DataGridViewColumn.HeaderText & AutoGenerateColumns (MSDN)

Надеюсь, это работает для вас.

2 голосов
/ 19 января 2012

Какие именно столбцы вам нужны ..?

Replace the SELECT * with

 SELECT ColumnName AS 'TEST1', ColumnName2 AS 'TEST2' FROM ...etc
2 голосов
/ 19 января 2012

Вы хотите Column.HeaderText, а не Column.Name.


Либо задайте свойства столбца с помощью визуального дизайнера, а в конструкторе формы установите

dataToDoList.AutoGenerateColumns = false;
1 голос
/ 19 января 2012

при привязке данных к сетке вы можете изменить HeaderText следующим образом:

this.dataGridView1.Columns["ResourceValue"].HeaderText = Helper.getlocalStringResource("Xinga.LocalStrings.ColumnHeader.ResourceValue");
1 голос
/ 19 января 2012

Легким способом было бы явно назвать столбцы, которые вы хотите в SQL.

Т.е.замените select * (который вам, вероятно, не стоит использовать) на select DiaryCompletedDate [TEST1], OtherColumn [TEST2], .. и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...