2011-01-10 4 views
0
public int InsertCompanyDetailsInformation(int companyId, int bankId, int accountNo, string accountType) 
     { 
      int rowsAffected = -1; 
      int returnValue; 
      try 
      { 
       SqlConnection con = DBProvider.GetDbConnection(); 
       using (con) 
       { 
        con.Open(); 
        SqlCommand objCmd = new SqlCommand("dbo.sp_InsertCompanyDetailsInformation", con); 
        objCmd.CommandType = CommandType.StoredProcedure; 
        objCmd.Parameters.AddWithValue("@companyId", companyId); 
        objCmd.Parameters.AddWithValue("@bankId", bankId); 
        objCmd.Parameters.AddWithValue("@accountNo", accountNo); 
        objCmd.Parameters.AddWithValue("@accountType", accountType); 
        rowsAffected = objCmd.ExecuteNonQuery(); 
        SqlParameter sqlParam = objCmd.Parameters.Add("@insert_flag", SqlDbType.Int); 
        objCmd.Parameters["@insert_flag"].Direction = ParameterDirection.ReturnValue; 
        returnValue = int.Parse(objCmd.Parameters["@insert_flag"].Value.ToString()); 
        con.Close(); 
       } 
      } 
      catch (Exception ex) 
      { 
       throw ex; 
      } 
      return rowsAffected; 
     } 

으로 SQL 서버에 설정 플래그와 저장 프로 시저를 액세서하는 방법비즈니스 로직

USE [SGTime_Development] 
GO 
/****** Object: StoredProcedure [dbo].[sp_InsertCompanyDetailsInformation] Script Date: 01/04/2011 14:31:09 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER PROCEDURE [dbo].[sp_InsertCompanyDetailsInformation] 
(
@companyId int, 
@bankId int, 
@accountNo int, 
@accountType varchar(50)) 
AS 
BEGIN 
    SET NOCOUNT ON; 
    declare @insert_flag int; 

     if not exists(select AccountNo from [Company_Account_Details] where [email protected]) 
    begin 
     INSERT INTO [Company_Account_Details] 
    (Company_Id, 
     BankID, 
     AccountNo, 
     AccountType) 
     values 
     (@companyId, 
     @bankId, 
     @accountNo, 
     @accountType) 
     set @insert_flag=1; 
     END 
     else 
     begin 
      set @insert_flag=-1; 
     end 

    return @insert_flag; 
    end 
나는 우리가 에 ReturnValue

를 반환 할 수있는 방법을 도와주세요 내가 InsertCompanyDetailsInformation 년에 ReturnValue를 반환하려면 코드에서 오류가 발생하고

답변

1

명령을 실행하기 전에 반환 값에 대한 매개 변수를 추가해야합니다. 그래서 다음과 같이 코드를 변경해야 : 인 Vinay의 대답은 100 % 옳지 않다하더라도

... 
objCmd.Parameters.AddWithValue("@accountType", accountType); 
// Add parameter for return value 
SqlParameter sqlParam = objCmd.Parameters.Add("@insert_flag", SqlDbType.Int); 
objCmd.Parameters["@insert_flag"].Direction = ParameterDirection.ReturnValue; 
// now execute the command 
rowsAffected = objCmd.ExecuteNonQuery(); 
// you should able to get return value now 
returnValue = int.Parse(objCmd.Parameters["@insert_flag"].Value.ToString()); 
... 
+0

이 바로 answere – Rajesh

0
public int InsertCompanyDetailsInformation(int companyId, int bankId, int accountNo, string accountType) 
{ 
    int rowsAffected = -1; 
    int returnValue; 
    try 
    { 
     SqlConnection con = DBProvider.GetDbConnection(); 
     using (con) 
     { 
      con.Open(); 
      SqlCommand objCmd = new SqlCommand("dbo.sp_InsertCompanyDetailsInformation", con); 
      objCmd.CommandType = CommandType.StoredProcedure; 
      objCmd.Parameters.AddWithValue("@companyId", companyId); 
      objCmd.Parameters.AddWithValue("@bankId", bankId); 
      objCmd.Parameters.AddWithValue("@accountNo", accountNo); 
      objCmd.Parameters.AddWithValue("@accountType", accountType); 
      rowsAffected = objCmd.ExecuteNonQuery(); 
      SqlParameter sqlParam = objCmd.Parameters.Add("@insert_flag", SqlDbType.Int); 
      sqlParam.Direction = ParameterDirection.ReturnValue; 
      // now execute the command 
      objCmd.Parameters.Add(sqlParam); 
      con.Open(); 
      rowsAffected = objCmd.ExecuteNonQuery(); 
      con.Close(); 
      returnvalue = (int)objCmd.Parameters["insert_flag"].Value; 

     } 
    } 
    catch (Exception ex) 
    { 
     throw ex; 
    } 
    return rowsAffected; 
} 

가}

+0

가하십시오, 그것은 여전히 ​​당신을 보여 무엇을 몰랐다. 그의 대답을 정답으로 받아 들여야합니다. – Rajesh

+0

일부 worng – jlafay

관련 문제