2011-09-01 25 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,但您在SQL中引用了@Criteria。您需要將其中一個位置更改爲一致。

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); 
          ^^^^^^^^^^^^