2014-02-06 4 views
0

Это моя хранимая процедураВызов хранимой процедуры с помощью C#

CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_CPC`(IN _B VARCHAR(100),IN _G  VARCHAR(2), IN _R VARCHAR(30), IN _D VARCHAR(30), OUT _C FLOAT, OUT _P FLOAT) 

НАЧАТЬ // Что-то Услышь END $$

DELIMITER;

I Call эту хранимую процедуру C# протекающий Код

DataSet tmpDataSet = new DataSet(); 

    mCommand.CommandText = "sp_CPC"; 
     mCommand.CommandType = CommandType.StoredProcedure; 
     // mCommand.CommandText = "sp_select_all_employees"; 
     mCommand.Parameters.AddWithValue("@_B", "bty-23"); 
     mCommand.Parameters.AddWithValue("@_G", "3"); 
     mCommand.Parameters.AddWithValue("@_R", "9000"); 
     mCommand.Parameters.AddWithValue("@_D", "92"); 

     mCommand.Parameters.Add("@_C",SqlDbType.Float); 
     mCommand.Parameters["@_C"].Direction = ParameterDirection.Output; 
     mCommand.Parameters.Add("@_P", SqlDbType.Float); 
     mCommand.Parameters["@_P"].Direction = ParameterDirection.Output; 

     try 
     { 
      mConnection.Open(); 
      mCommand.ExecuteNonQuery(); 
      mAdapter.Fill(tmpDataSet); 

     } 
     catch (Exception ex) 
     { 
      strErrorInfo = ex.ToString(); 
     } 
     finally 
     { 
      mConnection.Close(); 
     } 
     return tmpDataSet; 


    } 

Он показывает следующее сообщение об ошибке Входная строка не была в правильном формате. Как я могу решить это

ответ

0

Я думаю, что вы сделали ошибку в следующем разделе

mCommand.Parameters.Add("@_C",SqlDbType.Float); 
    mCommand.Parameters["@_C"].Direction = ParameterDirection.Output; 
    mCommand.Parameters.Add("@_P", SqlDbType.Float); 
    mCommand.Parameters["@_P"].Direction = ParameterDirection.Output; 

изменение SqlDbType в MySqlDbType

mCommand.Parameters.Add("@_C",MySqlDbType.Float); 
    mCommand.Parameters["@_C"].Direction = ParameterDirection.Output; 
    mCommand.Parameters.Add("@_P", MySqlDbType.Float); 
    mCommand.Parameters["@_P"].Direction = ParameterDirection.Output; 
+0

Спасибо, что работа в настоящее время. Но теперь я сталкиваюсь с новой проблемой. После первого звонка он работает, когда второй раз снова вызывает его. Параметр '@_C' уже определен. Как я могу решить эту проблему. –

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