2016-06-07 6 views
0

У меня есть таблица с нулевым полем int в Oracle с именем «EmployeeNumber». Когда я пытаюсь присвоить это значение соответствующему полю в SQL Server с использованием набора данных xsd, я получаю не могу преобразовать null в int.C# move oracle nullable int to sql server nullable int using dataset

sqlEmployeeDT.AddEmployeeRow(dr.CM_REALM, 
dr.CM_CO, dr.EM_FILE_NO, dr.EM_LOCATION, dr.EM_EMPNO)                    

Это не по всей видимости, происходит в точке я пытаюсь присвоить значение (addemployeerow), это происходит, когда я пытаюсь прочитать значение, в сильно типизированных Int столбца, из Oracle (dr.EM_EMPNO) потому что Oracle возвращает значение поля как null, но C# требует int.

Я искал ответ, но ничего не могу найти. В большинстве ответов речь идет о null vs DBNull.Value. Но эта проблема, похоже, находится между Oracle и C#.

Я могу проверить значение Oracle перед вставкой, используя dr.IsEm_EMPNONull(), но затем я столкнулся с введением нулевого значения в поле int SQL Server, используя sqlEmployeeDT.AddEmployeeRow, который производит «не может преобразовать null в int», в инструкции insert.

Нет ли простого способа сделать это?

ответ

1

Здесь может быть что-то не так. Вы, например, не показываете достаточно информации, чтобы понять, что происходит. Наиболее вероятным объяснением является то, что метод AddEmployeeRow имеет пятый параметр, определенный как тип int, для которого требуется целое число, а не значение null, а не DBNull.Value.

Возможно, вы захотите проверить sqlEmployeeDT.Columns ["EM_EMPNO"]. AllowDBNull гарантировать, что это правда.

Альтернативный подход может заключаться в использовании

DataRow row = sqlEmployeeDT.NewRow(); 
row["CM_REALM"] = dr.CM_REALM; //etc. 
row["EM_EMPNO"] = DBNull.Value; 
sqlEmployeeDT.Rows.Add(row); 
+0

Я был почти готов махнуть на этом подходе. Альтернативный подход Берт работает как шарм. Я вижу, что мой вопрос размещен в миллионах разных способов и видел, как он ответил так же, как и многие другие. Этот ответ мне нужен. – EllieK

 Смежные вопросы

  • Нет связанных вопросов^_^