2011-07-06 98 views
-2

錯誤,我有一個問題,如果你願意幫助我,我有一個錯誤問題在asp.net C#

必須聲明標量變量 「@Deitails」。

,我找不出什麼問題,因爲我不知道標量是關於什麼的

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,Deitails) 

           values(0,@paperId,@ConferenceRoleId,@Deitails);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(); } 

感謝

+2

您需要提供更多信息。請張貼一些代碼。 – PHeiberg

+2

也許你的代碼是錯誤的。 –

+0

可能就是你拼錯的細節。 –

回答

1

您有一行代碼它說

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

您提供的參數@paperId@ConferenceRoleId@Deitails爲INSERT語句中值。以後你的前兩個參數指定的值,而不是@Deitails

cmd.Parameters.AddWithValue("@paperId", paperId); 
cmd.Parameters.AddWithValue("@ConferenceRoleId", ConferenceRoleId); 

您需要添加一個類似的行添加值@Deitails,使SQL服務器知道怎麼用它做。您收到的錯誤來自SQL Server,因爲您的C#代碼中未添加@Deitails的值,因此不會在發送到服務器的SQL代碼中爲您聲明。

要回答你的其他問題,在這種情況下'標量'意味着變量@Deitails代表一個單一的值。

7

您有一個名爲Details參數的SQL查詢,但你忘了添加參數。