2010-07-21 3 views
0

Может ли кто-нибудь сообщить, где я поступил неправильно, со следующим методом/сохраненным способом? Я продолжаю получать следующую ошибку ...Строка ввода не была в правильном формате

** 

> Input string was not in a correct 

** 

Это хранимый процесс, который я использовал и метод.

-- -------------------------------------------------------------------------------- 

-- Routine DDL 
-- -------------------------------------------------------------------------------- 
DELIMITER $$ 

CREATE DEFINER=`Admin`@`%` PROCEDURE `test`(
     IN p_idExceptionLog    INT(32)  , 
     IN p_ExceptionDate     DATETIME  , 
     IN p_User       VARCHAR(45) , 
     IN p_ExceptionMessage    VARCHAR(4000) 

    ) 
BEGIN 

    INSERT INTO ExceptionLog 
     (
      id     , 
      Date     , 
      User     , 
      Message          
     ) 
    VALUES 
     ( 
      p_idExceptionLog     , 
      p_ExceptionDate      , 
      p_User        , 
      p_ExceptionMessage      
     ) ; 
END 

    private void showErrorBox(String errorMsg, MessageBoxButtons btnokshow) 
    { 

     MessageBox.Show(errorMsg, "FS Manager Error", MessageBoxButtons.OK); 

     // write to DB 

     string username = System.Environment.UserName.ToString(); 
     string timestamp = DateTime.Now.ToString(); 

      // Locals 
     MySqlConnection NasDB = null; 
    // MySqlCommand inputError1 = new MySqlCommand(); 
     MySqlCommand inputError = null; 
       int rows = 0; 
     string spName = "test"; 

     try 
     { 
      //Instantiate the DB connection setting the conn string 
      using (NasDB = new MySqlConnection(getConnectionString(ConnectionType.NAS))) 
      { 
       // Instantiate the command object that will fire the SP. 
       using (inputError = new MySqlCommand(spName, NasDB)) 
       { 
        // Finish setting up the command object 
        inputError.CommandType = CommandType.StoredProcedure; 

        // Set up the SP params. 

        inputError.Parameters.Add(new MySql.Data.MySqlClient.MySqlParameter("p_idExceptionLog", MySql.Data.MySqlClient.MySqlDbType.Int32, (1))); 
        inputError.Parameters[0].Value = ""; 

        inputError.Parameters.Add(new MySql.Data.MySqlClient.MySqlParameter("p_ExceptionDate", MySql.Data.MySqlClient.MySqlDbType.DateTime, (1))); 
        inputError.Parameters[1].Value = timestamp; 

        inputError.Parameters.Add(new MySql.Data.MySqlClient.MySqlParameter("p_User", MySql.Data.MySqlClient.MySqlDbType.VarChar, (45))); 
        inputError.Parameters[2].Value = System.Environment.UserName.ToString(); 

        inputError.Parameters.Add(new MySql.Data.MySqlClient.MySqlParameter("p_ExceptionMessage", MySql.Data.MySqlClient.MySqlDbType.VarChar, (4000))); 
        inputError.Parameters[3].Value = errorMsg; 

        // Now that the SP is completely set up and ready to go open the conn and fire the SP. 
        inputError.Connection.Open(); 
        rows = inputError.ExecuteNonQuery(); 

        // Close ASAP 
        inputError.Connection.Close(); 
       } 
      } 

     } 
     catch (Exception ex) 
     { 
      //showErrorBox(ex.ToString()); 
      throw ex; 
     } 
    } 

Благодаря

ответ

1

Err вы объявляете параметра Я [0] (idExceptionLog) как Int32, а затем установить его в строку вашего сценария? возможно, не устанавливать его, поможет, если он должен быть автоматически сгенерирован или присвоить ему действительное значение int, если вы его вручную генерируете.

+0

Я не думаю, что это проблема, так как при запуске на SP он вводит данные, но формат даты - наоборот. ВЫЗОВ FS.test ('', '21/07/2010 16:54:29' , 'стив', 'messageTest' ) – Steve

-1

Работала с проблемой.

private void showErrorBox(String errorMsg, MessageBoxButtons btnokshow) 
    { 

     MessageBox.Show(errorMsg, "FS Manager Error", MessageBoxButtons.OK); 

     // write to DB 

     string username = System.Environment.UserName.ToString(); 
     string timestamp = DateTime.Now.ToString(); 

      // Locals 
     MySqlConnection NasDB = null; 
     MySqlCommand inputError = null; 
       int rows = 0; 
     string spName = "ExceptionInsert"; 


     try 
     { 
      //Instantiate the DB connection setting the conn string 
      using (NasDB = new MySqlConnection(getConnectionString(ConnectionType.NAS))) 
      { 
       // Instantiate the command object that will fire the SP. 
       using (inputError = new MySqlCommand(spName, NasDB)) 
       { 
        // Finish setting up the command object 
        inputError.CommandType = CommandType.StoredProcedure; 

        // Set up the SP params. 

        inputError.Parameters.Add(new MySql.Data.MySqlClient.MySqlParameter("p_idExceptionLog", MySql.Data.MySqlClient.MySqlDbType.Int32, (0))); 
        inputError.Parameters[0].Value = null; 

        inputError.Parameters.Add(new MySql.Data.MySqlClient.MySqlParameter("p_ExceptionDate", MySql.Data.MySqlClient.MySqlDbType.DateTime, (1))); 
        inputError.Parameters[1].Value = timestamp; 

        inputError.Parameters.Add(new MySql.Data.MySqlClient.MySqlParameter("p_User", MySql.Data.MySqlClient.MySqlDbType.VarChar, (45))); 
        inputError.Parameters[2].Value = System.Environment.UserName.ToString(); 

        inputError.Parameters.Add(new MySql.Data.MySqlClient.MySqlParameter("p_ExceptionMessage", MySql.Data.MySqlClient.MySqlDbType.VarChar, (4000))); 
        inputError.Parameters[3].Value = errorMsg; 

        // Now that the SP is completely set up and ready to go open the conn and fire the SP. 
        inputError.Connection.Open(); 
        rows = inputError.ExecuteNonQuery(); 

        // Close ASAP 
        inputError.Connection.Close(); 
       } 
      } 

     } 
     catch (Exception ex) 
     { 
      //showErrorBox(ex.ToString()); 
      throw ex; 
     } 
    } 
+0

Не могли бы вы объяснить, что ваши изменения, а не ждет нас всех играть «определить разницу». – Urbycoz

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