2011-09-01 4 views
0

당신이 나를 힙하십시오 내가 오류를 가지고스칼라 변수 오류

오류 :

은 스칼라 변수 "@Criteria"를 선언해야합니다.

내가 경험이 많지 않기 때문에 내가 문제 덕분에

코드를 찾을 수 없습니다 :

public static void CreateReveiw(string paperId, string Criteria_Id, string Grate) 
{ 



    var sqlCon = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); 




    SqlCommand cmd = new SqlCommand(); 
    cmd.Connection = sqlCon; 
    cmd.CommandText = "select Review_paper_ID from ReviewPaper where Paper_ID= @PaperId"; 
    cmd.Parameters.AddWithValue("@PaperId", paperId); 
    cmd.Connection.Open(); 
    string Review_paper_ID = cmd.ExecuteScalar().ToString(); 
    cmd.Connection.Close(); 
    cmd.Dispose(); 





    string query2 = @"insert into ReviewPaperCriteria(Review_paper_ID,Criteria_ID,Grate) 
        values(@Review_paper_ID,@Criteria,@Grate);select SCOPE_IDENTITY() as RPID"; 

    cmd = new SqlCommand(query2, sqlCon); 
    cmd.Parameters.AddWithValue("@Review_paper_ID", Review_paper_ID); 
    cmd.Parameters.AddWithValue("@Criteria_ID", Criteria_Id); 
    cmd.Parameters.AddWithValue("@Grate", Grate); 

    string ReviewPaperId; 

    try 
    { 
     cmd.Connection.Open(); 
     ReviewPaperId = cmd.ExecuteScalar().ToString(); 
     cmd.Connection.Close(); 
    } 
    catch (Exception ee) { throw ee; } 
    finally { cmd.Dispose(); } 



    } 
+0

** 절대 ** 쓰기'캐치 (예외 EE)에 {EE를 던져; }'. 그것은 스택 추적을 파괴합니다. – SLaks

+0

@SLaks는'catch (Exception ee) {throw; }'스택 추적을 유지 하시겠습니까? –

+0

@Bala : 예. 괜찮습니다.하지만 쓸모가 없습니다. – SLaks

답변

1

당신은 변수 @Criteria를 선언하지만 @Criteria_ID를 사용하여 값을 설정하려고 시도하고 있습니다.

변경

cmd.Parameters.AddWithValue("@Criteria_ID", Criteria_Id); 

cmd.Parameters.AddWithValue("@Criteria", Criteria_Id); 
3

변경

cmd.Parameters.AddWithValue("@Criteria_ID", Criteria_Id); 

cmd.Parameters.AddWithValue("@Criteria", Criteria_Id); 

에 또는 쿼리 스트라이드 변경 ng (query2)를 사용하여 사용 된 매개 변수 이름 (@Criteria_ID)을 찾습니다.

3

매개 변수는 @Criteria_ID이지만, @Criteria은 SQL에서 참조합니다. 일관성을 유지하려면 위치 중 하나에서 변경해야합니다.

string query2 = @"insert into ReviewPaperCriteria(Review_paper_ID,Criteria_ID,Grate) 
       values(@Review_paper_ID,@Criteria,@Grate);select SCOPE_IDENTITY() as RPID"; 
             ^^^^^^^^^  
... 

cmd.Parameters.AddWithValue("@Criteria_ID", Criteria_Id); 
          ^^^^^^^^^^^^