Как изменить данные, поступающие из базы данных в DataGridView - PullRequest
3 голосов
/ 11 августа 2011

У меня есть база данных с таблицей MASTER. У МАСТЕРА есть колонка Зарплата с типом ДЕНЬГИ. Теперь, когда я получаю данные из базы данных в datagridview, я хочу показать столбец денег с «Rs». добавлен к нему. Мол, если зарплата 100 в базе данных, я хочу просмотреть его как рупий. 100 в моем datagridview. Метод Fill просто копирует все данные в таблицу данных как есть. Как это сделать тогда?

Ответы [ 4 ]

2 голосов
/ 11 августа 2011
dataGridView1.CellFormatting +=
        new System.Windows.Forms.DataGridViewCellFormattingEventHandler(
        this.dataGridView1_CellFormatting);

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (this.dataGridView1.Columns[e.ColumnIndex].Name == "Salary")
    {
        if (e.Value != null)
        {
            try
            {
                e.Value = String.Format("Rs. {0:F2}", e.Value);
                e.FormattingApplied = true;
            }
            catch (FormatException)
            {
                e.FormattingApplied = false;
            }
        }
    }
}
2 голосов
/ 11 августа 2011

Используйте свойство Format свойства DefaultCellStyle рассматриваемого столбца. Вы можете сделать это декларативным способом, используя диалоговое окно «Редактирование столбцов», щелкнув правой кнопкой мыши элемент управления DataGridView. В вашем случае вам нужно установить свойство Format на 'Rs.' 0,00 . Одиночные кавычки необходимы для выхода из знака точки после Rs.

Подробнее см. В разделе Пользовательские строки числового формата в MSDN.

1 голос
/ 11 августа 2011

Я не уверен, но вы можете изменить событие добавления строки, используя DataGridView.OnUserAddedRow Метод

Вот краткий код. Я не проверял его, но, пожалуйста, проверьте, работает ли он у вас или нет:

protected override void OnUserAddedRow(DataGridViewRowEventArgs e)
{
    int actualRowIndex = this.Rows.Count - 2; 
    this.Rows[actualRowIndex].Cells["Salary"].Value = "Rs." + <Your SQL Salary>;
    base.OnUserAddedRow(e);
}

Подробнее об этом использовании можно прочитать здесь: Динамически установить значение по умолчанию DataGridViewColumn во время выполнения

0 голосов
/ 11 августа 2011

в DatabindingComplete вы можете изменить этот столбец вручную (если вы работаете с winforms)

    private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
    {
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            row.Cells["Salary"].Value = "Add your calc here";
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...