在页面上有好多textbox,命名如下:textbox1,textbox2……textbox100,现在要从数据库里取出一行记录赋值给这些textbox,数据库的字段名也是有规律的,比如:A1,A2……A100,现在想实现循环赋值。顺便问一下,将这些textbox值循环插入数据库有没有什么好的方法!
在页面上有好多textbox,命名如下:textbox1,textbox2……textbox100,现在要从数据库里取出一行记录赋值给这些textbox,数据库的字段名也是有规律的,比如:A1,A2……A100,现在想实现循环赋值。顺便问一下,将这些textbox值循环插入数据库有没有什么好的方法!
string sql="select * from Table";
DataRow dr=db.GetDataRow(sql);
foreach (Control oControl in this.Controls)
{
if (oControl.GetType() == typeof(HtmlForm))
{
foreach (Control item in oControl.Controls)
{
if (item.GetType() == typeof(TextBox))
{
string field="A"+((TextBox)Item).ID.SubString(((TextBox)Item)).ID.Length-1);
((TextBox)item).Text=dr[field].ToString() //得到所有的TextBox,设为只读
}
}
}
}
txtBoxes(0)=textbox1
txtBoxes(1)=textbox2for i as integer = 0 to 100
txtBoxes(i).Text=dt.rows(0)("A" & (i+1).ToString).ToString
end for
string sql = "select * from Table";
DataRow dr = db.GetDataRow(sql);
foreach (Control oControl in this.Controls)
{
if (oControl.GetType() == typeof(HtmlForm))
{
foreach (Control item in oControl.Controls)
{
if (item.GetType() == typeof(TextBox))
{
string field = "A" + ((TextBox)item).ID.Substring(((TextBox)item).ID.Length - 1);
((TextBox)item).Text = dr[field].ToString();
}
}
}
}
DataTable dt = new DataTable();
string sql = "...";//查询语句
string connstr = "...";//数据库连接字符串
//赋值
System.Data.SqlClient.SqlDataAdapter sda = new System.Data.SqlClient.SqlDataAdapter(sql, connstr);
sda.Fill(dt);
for (int i = 0; i < dt.Columns.Count; i++)
{
((TextBox)this.Page.FindControl("textbox" + (i + 1))).Text = dt.Rows[0]["A" + (i + 1)].ToString();
}
//修改
System.Data.SqlClient.SqlCommandBuilder scb = new System.Data.SqlClient.SqlCommandBuilder(sda);
//逆向赋值
sda.Update();
读出数据后,可以将DataTable存入ViewState中,修改时再将其显示转换为DataTable,然后用循环方法修改每个字段的值,再update
当然数据的准确性,防呆设计这些东西你可以用正则来控制。。HashTable ht=new HashTable();
string field=string.Empty;
foreach (Control oControl in this.Controls)
{
if (oControl.GetType() == typeof(HtmlForm))
{
foreach (Control item in oControl.Controls)
{
if (item.GetType() == typeof(TextBox))
{
field = "A" + ((TextBox)item).ID.Substring(6,((TextBox)item).ID.Length -7); //设TextBox的ID为TextBox1
//((TextBox)item).Text = dr[field].ToString();
//dr[field]=((TextBox)item).Text.ToString();
ht.Add(field,((TextBox)item).Text.ToString()); //添加到哈希表中,再去构造SQL函数即可。。
}
}
}
不过这么多textbox的话,应该考虑换其它实现形式了,
foreach (System.Web.UI.Control c in Page.Controls)
{
if (c is TextBox)
{
TextBox t = (TextBox)c;
t.Text = "abc";
}
}