Как я могу узнать, какой параметр вызывает исключение 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.
Другие вопросы по тегам