2010-04-04 4 views
3

내가 저장 프로 시저에 액세스하려고 그리고 난라는 오류 받고 있어요 작동하지 :SqlParameter에 제대로

절차 또는 함수 'getbug가'매개 변수를 예상 '을 @bugID'공급되지 않은.

이 코드는 절차를 호출하는 코드입니다.

SqlCommand cmd = new SqlCommand("getbug", cn); 
cmd.Parameters.Add(new SqlParameter("bugID", bugID)); 

이 버그는 1089로 설정 (및 int 타입이다)이 작동하지 않습니다 왜 알아낼 수 없습니다

입니다.

+0

"@"를 param에 추가해도 문제가 해결되지 않습니다. –

+0

@를 추가해도 작동하지 않으면 몇 가지 코드를 추가로 표시 할 수 있습니다. 당신이하고있는 방식은 * 작동해야합니다 – CResults

+2

아, cmd.CommandType = CommandType.StoredProcedure를 추가합니까? 나는 그것이 기본값으로 생각한다. 텍스트 – CResults

답변

4

SqlCommand cmd = new SqlCommand("getbug", cn); 
cmd.Parameters.Add(new SqlParameter("@bugID", bugID)); 
2

시도를 사용해보십시오. 그래도 몇 가지 아이디어가 있습니다.

저장 프로 시저를 호출하는 경우 CommandType을 지정해야합니다. 또한 코드를 단축하려면 AddWithValue 메서드를 사용할 수 있습니다.

using (var cn = new SqlConnection("your connection string")) 
{ 
    using (var cmd = new SqlCommand("getbug", cn)) 
    { 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.AddWithValue("@bugID", bugID); 

     //etc... 
    } 
} 
1

더 많은 코드가 도움이 될 것 매개 변수에 "@"를 추가하는 대신이

SqlCommand cmd = new SqlCommand("getbug", cn); 
cmd.CommandType = CommandType.StoredProcedure; 
cmd.Parameters.Add(new SqlParameter("@bugID", bugID));