【发布时间】:2013-06-06 16:24:17
【问题描述】:
我正在尝试运行两个并行的foreach Loop
代码:
foreach (Control c in panel1.Controls)
{
if (c.GetType() == typeof(CheckBox))
{
if (((CheckBox)c).Checked)
{
id = name;
}
}
}
if (id != "")
{
foreach (Control cd in panel1.Controls)
{
if (cd.GetType() == typeof(TextBox) && cd.Name == name)
{
val = cd.Text.ToString();
if (val != "")
{
con3.Open();
SqlCommand cmd3 = new SqlCommand("insert into Employee_Ear_Ded values('" + Convert.ToInt32(name) + "','" + Convert.ToInt32(comboBox1.Text) + "','" + drpPayHead.Text + "','" + Convert.ToDouble(val) + "','" + comboBox2.Text + "')", con3);
cmd3.ExecuteNonQuery();
con3.Close();
}
else
{
MessageBox.Show("Please Enter Value");
}
}
}
}
else
{
MessageBox.Show("No Employee Selected");
}
在这里,我尝试插入相应复选框已选中的文本框的值。
我正在使用的代码仅插入检查的最后一个值。
如何为每个复选框及其各自的文本框运行它?
控件是在运行时创建的。
【问题讨论】:
-
保留已检查 id 的列表并对其进行迭代?
-
name 是复选框的名称
-
离题,但我建议将 ITextControl cd 作为 ITextControl,检查空值,然后调用 cd.Text。它可能比反映页面上的每个控件更好。
-
您的代码易受 SQL 注入攻击。
-
这些并行如何?