2014-04-22 2 views
0

저장 프로 시저의 출력 매개 변수를 세션 변수에 할당하려고합니다. 기본적으로 varchar 출력 매개 변수가있는 저장 프로 시저를 호출하려고합니다. 저장 프로 시저출력 매개 변수로 varchar를 사용하여 저장 프로 시저 호출

Alter proc spCheckTaskPerformed 
    @TaskId int, 
    @Email varchar(100), 
    @Status varchar(100) output 
    as 
    begin 
    Select @Status = Status from tblTaskPerformed 
    where [Email] = @Email and [TaskId][email protected] 
    end 

I는 다음과 같습니다 가지고있는 코드 : 다음과 같다

 private void CheckTaskPerformed() 
{ 
    string CS = ConfigurationManager.ConnectionStrings["EasyRozMoney_ConnectionString"].ConnectionString; 
    using (SqlConnection con = new SqlConnection(CS)) 
    { 
     con.Open(); 
     SqlCommand cmd = new SqlCommand("spCheckTaskPerformed", con); 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.AddWithValue("@TaskId", lblTaskId.Text); 
     cmd.Parameters.AddWithValue("@Email", Session["Email"].ToString()); 

     SqlParameter outputParameter = new SqlParameter(); 
     outputParameter.ParameterName = "@Status"; 
     outputParameter.SqlDbType = System.Data.SqlDbType.VarChar; 
     outputParameter.Direction = System.Data.ParameterDirection.Output; 
     cmd.Parameters.Add(outputParameter); 

     cmd.ExecuteNonQuery(); 

     string Status = outputParameter.Value.ToString(); 
     lblStatus.Text = "This task has " + Status; 
    } 
} 

하지만 난 오류 메시지 - 문자열 [2] : 크기 속성에 0의 잘못된 크기가 아래 라인.

cmd.ExecuteNonQuery(); 
+1

예, 당신은 또한 C#을 측면에'100'에'Size' 속성을 설정해야합니다. –

+0

outputParameter.Size = 100; –

답변

0

당신은 상태에 값을 보내거나 널 (null) 입력을 지정해야합니다

@Status varchar(100) = null output 
관련 문제