Как я могу узнать, какой параметр вызывает исключение FormatException ("Входная строка была не в правильном формате") на вставке OracleCommand?
У меня есть проблема, в которой у меня есть огромная вставка с тоннами параметров.
Я использую объект OracleCommand, чтобы добавить свои параметры перед выполнением запроса.
Позже я выполняю метод ExecuteNonQuery(), и он дает исключение FormatException ("Входная строка была не в правильном формате").
У меня вопрос, есть ли способ узнать, какой параметр вызывает исключение?
Мой код выглядит примерно так
using (OracleConnection conn = new OracleConnection(_connString))
{
conn.open();
using(var cmd = conn.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = insert (..., ... ,...) into ..... values (nameOfParameter, ..., .... ,...);
cmd.Parameters.Clear();
cmd.Parameters.Add("nameOfParameter", OracleDBType.SomeTypeOfData, valueOfParameter, ParameterDirection.Input)
//Lots of Parameter Adding
cmd.ExecuteNonQuery();
}
}
2 ответа
Вы можете заключить свой код в
try {
// entire db transaction code goes here
} catch(Exception e) {
// you can log the exception and (cross finger) will give you more details
}
Вам нужно проверить каждый параметр, который вы передаете в ваш метод.
if (parameter1 == null)
logger.debug("parameter1 is null");
if (parameter2 == null)
logger.debug("parameter2 is null");
// ...
// You may do something else rather than only logging.