Winform控件数据源绑定(一)之TextBox绑定
一, 对于多个TextBox赋值的方法有两个
思路 (1)是逐个改变textbox的Text属性
//返回一个DataTable
DataTable dt1 = dodb.QueryOrderDetailByOrderId(this.OrderID.Text);
//迭代GroupBox中的控件
foreach( Control c in this.groupBox1.Controls )
{
//判断控件的类型是不是TextBox,这里用is判断也是可以的控件都继承自Controls
if(c.GetType()==typeof(TextBox))
{
//获取列名
string ColumnName = c.Name;
//迭代列名
foreach( DataColumn dc in dt1.Columns )
{
//赋值的值不为空,判断列名是否和DataTable表中列名一致
if (ColumnName.Equals(dc.ColumnName) & dt1.Rows[0] != null)
{
//改变TextBox的值
c.Text = dt1.Rows[0][dc.Ordinal].ToString();
}
}
}
}
思路(2)利用textBox的DataBinding属性去绑定数据源
foreach( Control c in this.groupBox1.Controls )
{
if(c.GetType()==typeof(TextBox))
{
string ColumnName = c.Name;
foreach( DataColumn dc in dt1.Columns )
{
if (ColumnName.Equals(dc.ColumnName) & dt1.Rows[0] != null)
{
//这里是关键 第一个参数属性名称,第二个参数数据源,第三个参数要显示列的字段名
c.DataBindings.Add("text", dt1, dc.ColumnName);
}
}
}