Несоответствие типов данных в выражении критериев в c#.
Всем привет,
У меня есть вопрос.
Я должен вставить значения таблицы oracle в базу данных Access.
Я храню значения таблицы oracle в datatable(dt).
В базе данных oracle и Access поле "Net" представляет собой "число"
Пытаясь вставить поле "Net" в тип данных access, я получаю следующее исключение.
"Несоответствие типов данных в выражении критериев."
Я выяснил, что причина заключается в том, что значение поля "Net" в таблице oracle пусто ("").
То, что я сделал, это попытка проверить поле IsNullOrEmpty, если оно пустое, то я хочу сохранить нулевое значение в поле "Net" (в базе данных Access).
После этого я внес некоторые изменения в код, также получив то же самое сообщение об ошибке .
""Несоответствие типов данных в выражении критериев."
Пожалуйста, помогите мне, как это исправить.
Что я уже пробовал:
strNet = !строка.IsNullOrEmpty(dr["NET"].ToString()) ? dr["NET"].ToString() : null;
если (ДТ.Строк.Count > 0)
{
по каждому элементу (объекта datarow Dr в ДТ.Строк)
{
sInsertValues= "'" + strNet + "'";
вставленные детали.ParmValue = sInsertValues;
вставленные детали.InsertIntoAccess();
iNbrInserts++;
}
}
ZurdoDev
Похоже, что вы делаете динамический sql, что означает, что вам нужно будет изменить null на строку "null", не так ли? Но тогда вам не понадобятся одиночные кавычки вокруг него.
sai.2012
Я попробовал strNet = !string.IsNullOrEmpty(drAEDetails["сеть"].ToString()) ? drAEDetails["NET"].ToString() : "Null";
но все равно я получаю одно и то же сообщение об ошибке.
Спасибо за ответ
Karthik_Mahalingam
использовать Ответить кнопка, чтобы отправить комментарии/запрос пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.
Bryian Tan
вы попробуйте значение dbnull.Ценность? Предполагая, что dr является DataReader в этом контексте
var strNet = dr["NET"] != DBNull.Value ? dr["NET"].ToString() : null;