Member 12439303 Ответов: 2

Необходимо объявить скалярную переменную &ампер;я filequestion&ампер@;; от quot; . Я столкнулся с этой ошибкой при компиляции ниже кода plz помогите мне решить


protected void Button2_Click(object sender, EventArgs e)
   {
       string conn4 = ConfigurationManager.ConnectionStrings["abc"].ConnectionString;
           SqlConnection con4 = new SqlConnection(conn4);
          con4.Open();
          SqlCommand cmd4 = new SqlCommand("insert into AddQuestions(testcategory,questiontype,answertype,optiontype,filequestion,textquestion,course,correctscore,incorrectscore,questiontime,displayorder) values(@testcategory,@questiontype,@answertype,@optiontype,@filequestion,@textquestion,@course,@correctscore,@incorrectscore,@questiontime,@displayorder)", con4);

          cmd4.Parameters.AddWithValue("@testcategory", DropDownList1.SelectedValue);
          cmd4.Parameters.AddWithValue("@questiontype", DropDownList3.SelectedValue);
          cmd4.Parameters.AddWithValue("@answertype", DropDownList2.SelectedValue);
          cmd4.Parameters.AddWithValue("@optiontype", RadioButtonList1.SelectedValue);
       if(RadioButtonList1.SelectedIndex==1)
       {
           string str1 = HttpUtility.HtmlEncode(CKEditor1.Text);
           cmd4.Parameters.AddWithValue("@textquestion", str1);
       }
       else
       {
       if (FileUpload1.HasFile)
          {
              string str = FileUpload1.FileName;
              FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Upload/" + str));
              string Image = "~/Upload/" + str.ToString();
              cmd4.Parameters.AddWithValue("@filequestion", Image);
          }
                   string str1 = HttpUtility.HtmlEncode(CKEditor1.Text);
       cmd4.Parameters.AddWithValue("@textquestion", str1);
       }
               cmd4.Parameters.AddWithValue("@course", DropDownList4.DataValueField);
              cmd4.Parameters.AddWithValue("@correctscore", TextBox1.Text);
              cmd4.Parameters.AddWithValue("@incorrectscore", TextBox2.Text);
              cmd4.Parameters.AddWithValue("@questiontime", TextBox3.Text);
              cmd4.Parameters.AddWithValue("@displayorder", TextBox4.Text);
              Label1.Text = "Data Added Successfully";
              TextBox1.Text = " ";
              TextBox2.Text = " ";
              TextBox3.Text = " ";
              TextBox4.Text = " ";
         cmd4.ExecuteNonQuery();
         con4.Close();
   }


Что я уже пробовал:

Необходимо объявить скалярную переменную "@filequestion". я столкнулся с этой ошибкой при компиляции ниже кода plz помогите мне решить

ZurdoDev

Это ошибка SQL, а не ошибка C#, поэтому вы не получите эту ошибку при компиляции c#. Однако эту ошибку очень легко исправить. Просто объявите переменную. Простой. Простой.

Karthik_Mahalingam

:)

2 Ответов

Рейтинг:
1

ZurdoDev

Очень простая отладка даст вам ответ быстрее, чем вам потребовалось, чтобы опубликовать этот вопрос, и быстрее, чем мне нужно, чтобы написать ответ.

Когда вы получаете ошибку, поставьте точку останова перед ошибкой, а затем пройдитесь по коду и посмотрите, что произойдет. В этом случае ваш оператор sql говорит, что вы собираетесь вставить значения, а значения поступают из параметров. Но вы добавляете параметр @filequestion в Оператор if. Таким образом, если оператор if не выполняется, вы не передаете параметр @fielquestion и, следовательно, получаете ошибку.

Вам нужно добавить условие else, когда вы делаете что-то вроде этого:

cmd4.Parameters.AddWithValue("@filequestion", DBNull.Value);


Рейтинг:
0

Karthik_Mahalingam

попробовать это

Объявите переменные снаружи со значением по умолчанию и назначьте значения переменным внутри "if condition". Поместите cmd.parameters.add вне условия, так что в любом случае все необходимые параметры добавляются к sqlCommand Объект

string str1 = "", Image = ""; // declare the variable 
           if (RadioButtonList1.SelectedIndex == 1)
           {
                 str1 = HttpUtility.HtmlEncode(CKEditor1.Text);
           }
           else
           {
               if (FileUpload1.HasFile)
               {
                   string str = FileUpload1.FileName;
                   FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Upload/" + str));
                     Image = "~/Upload/" + str.ToString();

               }
           }
           cmd4.Parameters.AddWithValue("@textquestion", str1);
           cmd4.Parameters.AddWithValue("@filequestion", Image);