ошибка скалярной переменной - PullRequest
0 голосов
/ 01 сентября 2011

, если вы мне помогите, у меня ошибка

ошибка:

Необходимо объявить скалярную переменную "@Criteria".

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

код:

public static void CreateReveiw(string paperId, string Criteria_Id, string Grate)
{



    var sqlCon = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);




    SqlCommand cmd = new SqlCommand();
    cmd.Connection = sqlCon;
    cmd.CommandText = "select Review_paper_ID from ReviewPaper where Paper_ID= @PaperId";
    cmd.Parameters.AddWithValue("@PaperId", paperId);
    cmd.Connection.Open();
    string Review_paper_ID = cmd.ExecuteScalar().ToString();
    cmd.Connection.Close();
    cmd.Dispose();





    string query2 = @"insert into ReviewPaperCriteria(Review_paper_ID,Criteria_ID,Grate) 
                     values(@Review_paper_ID,@Criteria,@Grate);select SCOPE_IDENTITY() as RPID";

    cmd = new SqlCommand(query2, sqlCon);
    cmd.Parameters.AddWithValue("@Review_paper_ID", Review_paper_ID);
    cmd.Parameters.AddWithValue("@Criteria_ID", Criteria_Id);
    cmd.Parameters.AddWithValue("@Grate", Grate);

    string ReviewPaperId;

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



    }

Ответы [ 3 ]

3 голосов
/ 01 сентября 2011

Ваш параметр @Criteria_ID, но вы ссылаетесь на @Criteria в SQL. Вам нужно изменить его в одном из мест, чтобы оно было согласованным.

string query2 = @"insert into ReviewPaperCriteria(Review_paper_ID,Criteria_ID,Grate) 
                 values(@Review_paper_ID,@Criteria,@Grate);select SCOPE_IDENTITY() as RPID";
                                         ^^^^^^^^^    
...

cmd.Parameters.AddWithValue("@Criteria_ID", Criteria_Id);
                             ^^^^^^^^^^^^
3 голосов
/ 01 сентября 2011

Измените

cmd.Parameters.AddWithValue("@Criteria_ID", Criteria_Id);

на

cmd.Parameters.AddWithValue("@Criteria", Criteria_Id);

или измените строку запроса (query2) в соответствии с именем параметра (@Criteria_ID), который используется.

1 голос
/ 01 сентября 2011

Вы объявляете переменную @Criteria, но пытаетесь установить ее значение с помощью @Criteria_ID.

Изменить

 cmd.Parameters.AddWithValue("@Criteria_ID", Criteria_Id);

на

 cmd.Parameters.AddWithValue("@Criteria", Criteria_Id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...