오류

2017-02-24 3 views
0
나는 다음과 같은 코드를 사용하여 내 데이터베이스에 저장 프로 시저를 실행하기 위해 노력하고

:오류

을 : 실행에 난라는 오류가 발생하고,

using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["myCNN"].ConnectionString)) 
{ 
    using (var cmd = new SqlCommand("dbo.myStoredProcedure", connection)) 
    { 
     cmd.Parameters.Add("@PatientId", SqlDbType.VarChar, 40).Value = number; 
     cmd.Parameters.Add("@NickName", SqlDbType.VarChar, 20).Value = "stlukeshs";        
     var reader = cmd.ExecuteReader(); 
     while(reader.Read()) 
     { 
      //Do Stuff.. 
     } 
     //closer reader 
     reader.Close(); 
    } 
} 

그러나

'System.Data.SqlClient.SqlException'유형의 예외가 System.Data.dll에서 발생했지만 사용자 코드에서 처리되지 않았습니다.

추가 정보 : 프로 시저 또는 함수 'myStoredProcedure'는 para 미터 '@PatientId'는 제공되지 않았습니다.

분명히 매개 변수를 추가하는 것을 볼 수 있으며 number의 값은 100이 아니라 null입니다. 그래서 저는 왜 제가 매개 변수의 주장을 얻지 못하고 있는지 혼란스러워합니다.

+1

코드 ... 오타가 아닌지 100 % 확실합니까? –

+0

나는 당신이 연결을 열지 않는다고 불평하지 않을 것이 놀랍습니다. – pilotcam

+0

아, 그 코드 줄을 놓 쳤어. 미안해! – Rinktacular

답변

1

기본값으로 TextCommandType을 지정해야합니다. 당신은 StoredProcedure 그래서 즉

cmd.CommandType = CommandType.StoredProcedure; 

CommandType로, 당신의 전체 코드가 있어야한다을 지정해야합니다 명확하지 실제 저장 프로 시저 이름, 그래서 아마 다른 것들 아주 진짜 같이하지 않을 수의

using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["myCNN"].ConnectionString)) 
{ 
    using (var cmd = new SqlCommand("dbo.myStoredProcedure", connection)) 
    { 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.Add("@PatientId", SqlDbType.VarChar, 40).Value = number; 
     cmd.Parameters.Add("@NickName", SqlDbType.VarChar, 20).Value = "stlukeshs";        
     var reader = cmd.ExecuteReader(); 
     while(reader.Read()) 
     { 
      //Do Stuff.. 
     } 
     //closer reader 
     reader.Close(); 
    } 
} 
+0

정확하게이 문제가 해결되었습니다. 나는 암시 적이라고 생각했다. 아아 나는 틀렸다. 고맙습니다! – Rinktacular