所以我有一些代码,它创建了一行4个文本框。来自这4个文本框的数据将组合在一起进行SQL查询然后执行。添加行的按钮可以无限次地命中。我生成了我的ID,因此在第一次单击文本框中,一个是txtBox1Row1,然后在第二次单击时,它是txtBox1Row2等,等等。
现在我需要一种从每行检索数据并从中构建SQL查询的方法。重申一下,我只需要每个循环中每行4个文本框中的数据(我假设需要这样做)。
那我该如何做呢?
非常感谢,我们非常感谢您的帮助。我打算这样做:
foreach (Control c in pnlArea.Controls)
{
if (c.ID.Contains("ddlArea"))
{
area.Add(((DropDownList)c).SelectedValue);
}
if (c.ID.Contains("txtArea"))
{
areaOther.Add(((TextBox)c).Text);
}
if (c.ID.Contains("ddHazard"))
{
hazard.Add(((DropDownList)c).SelectedValue);
}
if (c.ID.Contains("txtHazard"))
{
hazardOther.Add(((TextBox)c).Text);
}
if (c.ID.Contains("txtHazardDesc"))
{
hazardDesc.Add(((TextBox)c).Text);
}
if (c.ID.Contains("txtActionDesc"))
{
actionDesc.Add(((TextBox)c).Text);
}
if (c.ID.Contains("calDueDate"))
{
dueDate.Add(((Calendar)c).SelectedDate);
}
}
答案 0 :(得分:2)
根据Nkosi,您需要在表单中封装文本框“区域”。
我建议循环遍历表单中的每个文本框并存储在字典中。
这可能是这样的:
Dictionary<string, string> textBoxVals = new Dictionary<string, string>();
Control form = this.FindControl("form1") as Control;
TextBox tb;
foreach (Control c in form.Controls)
{
if (c.GetType() == typeof(TextBox))
{
tb = c as TextBox;
textBoxVals.Add(tb.ID, tb.Text);
}
}
然后你就可以遍历字典来构建你的SQL字符串。字典将包含控件的动态名称和文本框的值。
根据您发布的代码,看起来可能还有一些其他控件也可能与每一行相关联。如果是这种情况,你可以在foreach循环中创建另一个if语句来处理不同的控件类型,这样你就可以保存它们的正确参数。
我希望有所帮助。