System.FormatException "произошел в mscorlib.dll, но не был обработан при ошибке кода пользователя

этот вопрос обсуждался здесь ранее, но это не помогает мне решить мою проблему.

вот моя хранимая процедура ниже, чтобы сделать инвестиции неактивными.

ALTER  procedure [dbo].[mark_inactive]                  
@order_id int,                 
@intResult int output                  
as                  
BEGIN transaction               

Declare @Error as int

update investment_orders set investment_active = 0 where order_id = @order_id


-- if error in saving details                    
Select @Error = @@error                    
 if(@Error<>0)                    
 Begin                    
  Set @intResult = 0                    
  rollback transaction            
  return                      
 End          
commit transaction                    
return @intResult 

и функция «Кодовое отставание» для процедуры вызова

 public int ExecuteSqlSP(SqlParameter[] arrParam, string strSPName)
    {
        OpenConnection();
        _mDataCom.CommandType = CommandType.StoredProcedure;
        _mDataCom.CommandText = strSPName;
        _mDataCom.CommandTimeout = 30;
        for (int i = 0; i < arrParam.Length; i++)
        {
            _mDataCom.Parameters.Add(arrParam[i]);
        }

        _mDataCom.ExecuteNonQuery();
        int intResult = Int32.Parse(_mDataCom.Parameters["@intResult"].Value.ToString());
        CloseConnection();
        DisposeConnection();
        return intResult;
    }

Хотя одна строка обновлена, но следующая ошибка показывает

Input string was not in a correct format.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.FormatException: Input string was not in a correct format.    

Прошу прощения, если какие-то ошибки. Пожалуйста, помогите мне решить проблему.

благодаря

c#,sql,.net,stored-procedures,

0

Ответов: 1


1 принят

Вы не возвращаете значения из хранимой процедуры, которую вы написали после успешного обновления.

вы должны выглядеть так:

ALTER  procedure [dbo].[mark_inactive]                  
@order_id int,                 
@intResult int output                  
as                  
BEGIN transaction               

Declare @Error as int

update investment_orders set investment_active = 0 where order_id = @order_id;
SET @intResult = 1; // 1 OR whatever desired value you wanna return

-- if error in saving details                    
Select @Error = @@error                    
 if(@Error<>0)                    
 Begin                    
  Set @intResult = 0                    
  rollback transaction            
  return                      
 End          
commit transaction                    
return @intResult 
C #, SQL, .net, хранимая-процедура,
Похожие вопросы
Яндекс.Метрика