我有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());
}
答案 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);
由于您无法连接string
和TextBox
,因为它是一个对象,其中一个字段为Text
,其中包含输入的文本。
注意:请注意SQL注入攻击,不要这样做,而是使用cmd.Parameters.AddWithValue("@raspuns", raspuns.Text);
返回注释掉的解决方案。再次确保放置raspuns.Text
。
答案 1 :(得分:1)
假设此行出现问题:
//cmd.Parameters.AddWithValue("@raspuns", raspuns);
将其更改为:
cmd.Parameters.AddWithValue("@raspuns", raspuns.Text);