循环文本框c#

本文关键字:文本 循环 | 更新日期: 2023-09-27 18:21:32

我有5个文本框,我想对它们进行循环,获取每个文本框值,并将其插入到单独一行的表中。我该怎么做?我试过这样的东西:

TextBox[] rasp = new TextBox[] { textbox1, textBox2, textBox3, 
                                 textBox4, textBox5 };
foreach (TextBox  raspuns in rasp) {
     SqlConnection con = new SqlConnection(
  ConfigurationManager.ConnectionStrings["chestionar"].ConnectionString);
     SqlCommand cmd = new SqlCommand(
        "INSERT INTO Raspunsuri Values('" + raspuns +"',@cnp,@data,'5')", con);
     cmd.Parameters.AddWithValue("@cnp", Session["sesiune_cnp"]);
     //cmd.Parameters.AddWithValue("@raspuns", raspuns);
     cmd.Parameters.AddWithValue("@data", DateTime.Now.ToLocalTime());
}

循环文本框c#

您的意思可能是:

 SqlCommand cmd = new SqlCommand("INSERT INTO Raspunsuri Values('" + raspuns.Text +"',@cnp,@data,'5')", con);

而不是:

 SqlCommand cmd = new SqlCommand("INSERT INTO Raspunsuri Values('" + raspuns +"',@cnp,@data,'5')", con);

由于stringTextBox是一个对象,其中一个字段为Text,其中包含输入的文本,因此无法将它们连接起来。

注意:小心SQL注入攻击,不要这样做,而是使用cmd.Parameters.AddWithValue("@raspuns", raspuns.Text);的注释掉的解决方案。再次,确保放置raspuns.Text

假设问题是这一行的错误:

//cmd.Parameters.AddWithValue("@raspuns", raspuns);

更改为:

cmd.Parameters.AddWithValue("@raspuns", raspuns.Text);