循环文本框c#

时间:2012-01-27 14:03:33

标签: c# sql properties

我有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());
}

2 个答案:

答案 0 :(得分:2)

你可能意味着:

 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

答案 1 :(得分:1)

假设此行出现问题:

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

将其更改为:

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