2011-07-06 21 views
0

如果您請幫助我,我有一個錯誤,我想了解錯誤是什麼,所以我可以修復它,因爲我是一個初學者。在asp.net標量變量中的錯誤

我的錯誤是:

Must declare the scalar variable "@Details" 

我的功能是這樣的:

public static void CreateReview(string paperId, string grate, string criteriaId, string Details) 
{ 
    var sqlCon = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); 

      // GET CONFERENCE ROLE ID 
      SqlCommand cmd = new SqlCommand(); 
      cmd.Connection = sqlCon; 
      cmd.CommandText = "select Conference_Role_ID from AuthorPaper where Paper_ID = @PaperId"; 
      cmd.Parameters.AddWithValue("@PaperId", paperId); 
      cmd.Connection.Open(); 
      string ConferenceRoleId = cmd.ExecuteScalar().ToString(); 
      cmd.Connection.Close(); 
      cmd.Dispose(); 

      string query2 = @"insert into ReviewPaper(Overall_Rating,Paper_id,Conference_role_id,Details) 
      values(0,@paperId,@ConferenceRoleId,@Details); select 
SCOPE_IDENTITY() as RPID"; 

      cmd = new SqlCommand(query2, sqlCon); 
       cmd.Parameters.AddWithValue("@paperId", 
paperId); 
       cmd.Parameters.AddWithValue("@ConferenceRoleId", 
ConferenceRoleId); 

      string ReviewPaperId; 

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

如果我刪除細節我的功能完美的作品。提前感謝你。

回答

1

你需要一條線:

cmd.Parameters.AddWithValue("@Details", Details); 

您正在執行語句要花3個參數,但你提供只有兩個。

1

你需要一個新的參數添加到您的SqlCommand表示@Details

cmd = new SqlCommand(query2, sqlCon); 
cmd.Parameters.AddWithValue("@paperId",paperId); 
cmd.Parameters.AddWithValue("@ConferenceRoleId", ConferenceRoleId); 

// Add the details parameter 
cmd.Parameters.AddWithValue("@Details", Details); 
+0

謝謝你,它正在完美現在 – emilios

+0

@emilios甜! –