Member 12876673 Ответов: 1

Как установить значение переключателя


Я хочу создать приложение викторины приложение на C#.
Администратор позволяет вставить запись из слоя презентации так, как записать значение radiobutton .

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

private void button5_Click(object sender, EventArgs e)
       {
           SqlConnection con1 = new SqlConnection("Data Source=SHINGADE-PC\\SQLEXPRESS;Initial Catalog=Quize;Integrated Security=True");
           con1.Open();
           SqlCommand cmd1 = new SqlCommand("insert into Question(qid,question,op1,op2,op3,op4,ans,Isimage)values ("+label2.Text+",'"+textBox1.Text+"','"radioButton1.CanSelect+"','"radioButton2.Text+"','"radioButton3.Text+"','"radioButton4.Text+"','"txtans.text+"','"txtIsimage.text+"')"), con1);
       }

CHill60

Ваш код открыт для атаки SQL-инъекций. Вместо этого используйте параметризованный запрос, и он поможет вам решить вашу основную проблему.
Нам также нужно было бы знать, какого типа столбцы op1, op2 и т. д.

Member 12876673

извините ,но я не понимаю, не могли бы вы объяснить бриф, потому что я беггенер.
спасибо.

CHill60

Смотрите решение, которое я опубликовал

1 Ответов

Рейтинг:
2

CHill60

Вы хотите что-то похожее на это ...

SqlConnection con1 = new SqlConnection("Data Source=SHINGADE-PC\\SQLEXPRESS;Initial Catalog=Quize;Integrated Security=True");
  con1.Open();

  SqlCommand cmd1 = new SqlCommand("insert into Question(qid,question,op1,op2,op3,op4,ans,Isimage)values (@lb2,@tb1,@rb1,@rb2,@rb3,@rb4,@tbtans,@tbIsImage)", con1);
  cmd1.Parameters.AddWithValue("@lbl2", label2.Text);
  cmd1.Parameters.AddWithValue("@tb1", TextBox1.Text);

  //Assuming op1, op2, op3, op4 are bit values where 0 = False and 1 = True
  cmd1.Parameters.AddWithValue("@rb1", (radioButton1.Checked) ? 1 : 0);
  cmd1.Parameters.AddWithValue("@rb2", (radioButton2.Checked) ? 1 : 0);
  cmd1.Parameters.AddWithValue("@rb3", (radioButton3.Checked) ? 1 : 0);
  cmd1.Parameters.AddWithValue("@rb4", (radioButton4.Checked) ? 1 : 0);

  cmd1.Parameters.AddWithValue(@"tbtans", txttans.Text);
  cmd1.Parameters.AddWithValue(@"tbIsImage", txtIsimage.Text);

Как я уже сказал в своем комментарии, это скорее зависит от типа столбцов op1, op2, op3 и op4