2011-07-06 67 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查询,但你忘了添加参数。