Вопрос по ошибке в asp.net c # - PullRequest
0 голосов
/ 07 июля 2011

У меня есть вопрос, если вы, пожалуйста, помогите мне, у меня есть ошибка

Должен объявлять скалярную переменную "@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 ]

7 голосов
/ 07 июля 2011

У вас есть SQL-запрос с параметром с именем Details, но вы забыли добавить параметр.

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

У вас есть строка кода, которая говорит

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 для значений для оператора вставки.Позже вы указываете значение для первых двух параметров, но не @Deitails:

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

Вам необходимо добавить аналогичную строку, чтобы добавить значение для @Deitails, чтобы SQL-сервер знал, что делать сЭто.Вы получаете сообщение об ошибке с сервера SQL, поскольку, не добавляя значение для @Deitails в коде C #, оно не объявляется для вас в коде SQL, отправляемом на сервер.

Комуответьте на другой вопрос, в данном случае «Скаляр» означает, что переменная @Deitails представляет одно значение.

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