Установите значение по умолчанию в поле со списком DataGridView - PullRequest
3 голосов
/ 23 июля 2011

Я использую DataGridView в форме окна, чтобы позволить пользователю добавить n номеров строк со значениями, введенными пользователем. Один из столбцов DataGridView содержит поле со списком, в котором его элементы отображаются с использованием базы данных.

Я использую следующий код в событии Load для соединения DataGridViewComboBox с базой данных:

private void PurchaseMaster_Load(object sender, EventArgs e)
{
    DataTable dt = itemBAL.GetTable();
    bindingSource1.DataSource = dt;
    ItemName.DataSource = bindingSource1;
    ItemName.DisplayMember = "Name";
    ItemName.ValueMember = "ItemId";
    ItemName.DataPropertyName = "ItemId";
    ItemName.AutoComplete = true;
    ItemName.DefaultCellStyle.NullValue = dt.Rows[0][1].ToString();
    ItemName.DefaultCellStyle.DataSourceNullValue = dt.Rows[0][0].ToString();
}

Но всякий раз, когда я не выбираю какое-либо значение из DataGridViewComboBox и нажимаю кнопку сохранения, я нахожу в таблице значение null, соответствующее значению DataGridViewComboBox.

foreach (DataGridViewRow row in dataGridView1.Rows)
{
    if (row.IsNewRow)
        continue;

    DataRow dtRow = dt.NewRow();
    for (int i = 0; i < dataGridView1.Columns.Count; i++)
        dtRow[i] = row.Cells[i].Value == null ? DBNull.Value : row.Cell[i].Value;
    dt.Rows.Add(dtRow);
}

Может кто-нибудь сказать, почему я получаю нулевое значение в базе данных для DataGridViewcombobox значения по умолчанию, несмотря на использование свойства DataSourceNullValue?

1 Ответ

1 голос
/ 27 июля 2011

Ответ на ваш другой пост должен быть полезным: В комбинированном окне не отображается значение по умолчанию в DataGridView в C #

См. Комментарий в конце первого ответа. Установка нулевого значения отображает только значение по умолчанию, но фактически не устанавливает его.

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