Почему repositoryitemlookupedit возвращает нулевое значение
привет,
ч есть gridview1, на что содержать RepositoryItemLookUpEdit columnto сделать пользователю выбрать элементы :
имя поля столбца : stitems_ID (int(11))
RepositoryItemLookUpEdit Display Member : Name (varchar(255))
RepositoryItemLookUpEdit Value Member : stitems_ID (int(11))
st_itemsBindingSource.DataSource = Context.st_items.Local.ToBindingList();
gridview1 заполняется данными как : success
purchases_itemBindingSource1.DataSource = Context.purchases_item.Where(u => u.pmain_ID == PurchasesID).ToList();
я использовал Entity framework для вставки / обновления / выбора ..
операция вставки: успешная
for (int ItemImdex = 0; ItemImdex < gridView1.DataRowCount; ++ItemImdex) { purchases_item purchasesItem = new purchases_item(); purchasesItem.pmain_ID = lastid; purchasesItem.stitems_ID = Convert.ToInt32(gridView1.GetRowCellValue(ItemImdex, "stitems_ID")); ......... Context.purchases_item.Add(purchasesItem); Context.SaveChanges(); }
Операция обновления: сбой
данные, загруженные из базы данных mysql в gridview успешно и правильное значение появляются в repositoryitemlookupedit , но во время операции обновления
Convert.ToInt32(gridView1.GetRowCellValue(ItemImdex, "stitems_ID"))возвращает нулевое значение, а не выбранное значение.
Что я уже пробовал:
gridview1 filled with data as : succeed purchases_itemBindingSource1.DataSource = Context.purchases_item.Where(u => u.pmain_ID == PurchasesID).ToList();
johannesnestler
так что же было исключением? кстати. вы можете вызвать SaveChanges вне цикла - так что вы не говорите x-раз с базой данных во время цикла...
Golden Basim
данные, загруженные из базы данных mysql в gridview успешно и правильное значение появляются в repositoryitemlookupedit , но во время операции обновления преобразуются.ToInt32(gridView1.GetRowCellValue(ItemImdex, "stitems_ID")) возвращает нулевое значение, а не выбранное значение.
Richard MacCutchan
Используйте свой отладчик, чтобы войти в эту строку кода и выяснить, почему. Скорее всего, какая-то ссылка на объект или индекс является недопустимой.
Golden Basim
используя эти шаги, я нашел значение "а" в первой строке = 1500 (правильное значение)
но последняя пуста. ( я использую этот код для удаления старых данных элементов)
ля = "";
for (int i = 0; i < gridView1.DataRowCount; ++i)
{
преобразование.Метод toString(управления gridview1.GetRowCellValue(я, "stitems_ID")) + " / ";
}
// удаление старых элементов
Context.purchases_item.RemoveRange(Context.purchases_item.Где(u => u.pmain_ID == PurchasesID));
Контексте.Метод SaveChanges();
//// удалить старые сериалы
Контекст.purchases_item_seriels.RemoveRange(Context.purchases_item_seriels.Где(u => u.pmain_ID == PurchasesID));
Контексте.Метод SaveChanges();
ля = "";
for (int i = 0; i < gridView1.DataRowCount; ++i)
{
преобразование.Метод toString(управления gridview1.GetRowCellValue(я, "stitems_ID")) + " / ";
}
Golden Basim
похоже, что здесь ошибка
//Context.purchases_item.RemoveRange(Context.purchases_item.Где(u => u.pmain_ID == PurchasesID));
//Контекст.Метод SaveChanges();
но я не знаю, что это такое ?
Richard MacCutchan
Извините, но вам придется сделать гораздо больше отладки. Мы не можем угадать, какими будут значения всех ваших переменных в любой момент.