Как обработать Combo Box, который также загружен из sql. Затем этот Combox получает значение из кнопки Get Data. - PullRequest
0 голосов
/ 03 июля 2019

У меня есть в поле со списком Vendor. Я делаю это, пополняя его данные из базы данных SQL, используя источник данных, но предположим, что когда я нажимаю кнопку Update, в поле Vendor Combo Box также отображается значение Vendor Value, проблема заключается в

после обновления и отправки данных в базу данных SQL с помощью кнопки «Обновить» в следующий раз этого процесса Дайте мне ошибку в поле со списком поставщиков, которое является необработанным исключением типа 'System.ArgumentNullException' occurred in System.Windows.Forms.dll

private void FillVendorBox()
        {
            var result = db.VendorTBs.Select(v => v);
            comboBoxVendor.DataSource = result;
            comboBoxVendor.DisplayMember = "VendorName";
            comboBoxVendor.ValueMember = "VendorCode";
            comboBoxVendor.SelectedIndex = -1;
        }
   ProductsTB Product = null;
        private void btnData_Click(object sender, EventArgs e)
        {
            int ProductCode = Convert.ToInt32(comboBoxProduct.SelectedValue);
             Product = (from b in db.ProductsTBs
                           where b.ProductCode == ProductCode
                           select b).First();
  comboBoxVendor.SelectedValue = Product.VendorCode;
}
 private void btnUpdate_Click(object sender, EventArgs e)
        {
Product.VendorCode = Convert.ToInt32(comboBoxVendor.SelectedValue);
db.SubmitChanges();
btnCancel_Click(sender, e);
}
private void btnCancel_Click(object sender, EventArgs e)
        { if (comboBoxVendor.SelectedValue != null)
            {
                FillVendorBox();
            }
            else
            {
                comboBoxVendor.SelectedIndex = -1;
            }
}

Это сообщение об ошибке: private void btnData_Click (отправитель объекта, EventArgs e) {comboBoxVendor.SelectedValue = Product.VendorCode;}

Это сообщение об ошибке:

ArgumentNullException was unhandled 
An unhandled exception of type 'System.ArgumentNullException' occurred in System.Windows.Forms.dll

Дополнительная информация: значение не может быть нулевым.Обратите внимание, что ошибка появляется во второй раз код теста

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

Проверьте базу данных как VendorCode в ProductTB для некоторых продуктов имел значение Null для базы данных, поэтому он возвращал значение Null.

0 голосов
/ 03 июля 2019

Я думаю, что эта ошибка генерируется из запроса linq

. Пожалуйста, замените .First () на .FirstOrDefault (), поэтому, если записи не существует, система вернет значение null, которое вы можете проверить перед присвоением значения

comboBoxVendor.SelectedValue = Product.VendorCode;

...