Невозможно преобразовать System.DBNull в int
Я изо всех сил пытаюсь понять, что это за проблема, у меня есть таблица Excel, которая должна быть импортирована в мою базу данных SQL Server. Я повторяю это следующим образом:
Microsoft.Office.Interop.Excel.Range xlRange = xlWorksheet.Range["A1", "D6867"]; int num = 4; // String test = ""; foreach (Microsoft.Office.Interop.Excel.Range row in xlRange.Rows) { if ((int)xlWorksheet.Cells[num, 1].Font.Size == 14) { ProductCategory category = new ProductCategory(); category.Category = xlWorksheet.Cells[num, 1].Value.ToString(); db.ProductCategories.Add(category); } num++; //System.Diagnostics.Debug.WriteLine(test); } db.SaveChanges(); xlWorkbook.Close(true, Missing.Value, Missing.Value); xlApp.Quit();
Ошибка, которую я получаю
Невозможно преобразовать System.DBNull в int
- Как я могу иметь дело с исключениями «без конструкторов» и «тип не может быть внедрен»?
- Значение ячейки ячейки Excel для активного листа
- Эквивалентный метод для «Сбросить стиль соответствия»
- Excel Interop - как искать ячейку с форматом?
- Создание файла Excel с предустановленными значениями выпадающего списка с помощью Microsoft.Office.Interop.Excel
на этой линии:
if ((int)xlWorksheet.Cells[num, 1].Font.Size == 14)
Я понятия не имею, что означает эта ошибка, и нет нулевых значений в ячейках, к которым я обращаюсь. Пожалуйста, порекомендуйте?
- C #: DataTable в Excel (форматирование валюты)
- Можете ли вы вставить блок ячеек одним выстрелом с помощью Excel Interop без использования буфера обмена?
- Не удается ли использовать объекты Interop в общих объектах в .NET 4.0?
- Добавить изображение быстрее в excel с помощью библиотеки Interop
- Excel выделяет исключение HRESULT: 0x800A03EC, пока пользователь все еще вводит значение ячейки и ячейки
- Быстрый способ обновления части листа Excel из C # Interop Add In
- Открыть файл Excel
- Как добавить некоторые параметры в событие WorkbookBeforeClose () Excel
По крайней мере в одной из ваших ячеек размер шрифта – System.DBNull.
Вы должны проверить тип Размер перед его литьем:
if(Convert.IsDBNull(xlWorksheet.Cells[num, 1].Font.Size)) { } else if((int)xlWorksheet.Cells[num, 1].Font.Size == 14) { // do Something.... }