Ошибка в скалярной переменной asp.net - PullRequest
0 голосов
/ 07 июля 2011

Если вы поможете мне, у меня есть ошибка, и я пытаюсь понять, в чем суть ошибки, так что я могу ее исправить, так как я новичок.

Моя ошибка:

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(); } }

Если я удаляю детали, моя функция работает отлично.Заранее благодарю.

Ответы [ 2 ]

1 голос
/ 07 июля 2011

Вам необходимо добавить новый параметр в 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);
1 голос
/ 07 июля 2011

Вам нужна строка:

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

Вы выполняете оператор, который принимает 3 параметра, но вы предоставляете только два.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...