Sql server 将数据从数据库提取到文本框中

Sql server 将数据从数据库提取到文本框中,sql-server,vb.net,Sql Server,Vb.net,我设计了一个SQL Server数据库应用程序,在其中我从数据库中获取数据,然后插入文本框。我使用一个函数从数据库中获取数据表中的数据,然后填充文本框。我不得不一次又一次地使用这种编码: 如果Dt.Rows.Count>0,则 TxtCust_Id.Text=Dt.行(0).项(0) TxtCust_City.Text=Dt.行(0).项(1) TxtCust_Area.Text=Dt.行(0).项(2) 其他的 TxtCust_Id.Text=String.Empty TxtCust_City

我设计了一个SQL Server数据库应用程序,在其中我从数据库中获取数据,然后插入文本框。我使用一个函数从数据库中获取数据表中的数据,然后填充文本框。我不得不一次又一次地使用这种编码:

如果Dt.Rows.Count>0,则
TxtCust_Id.Text=Dt.行(0).项(0)
TxtCust_City.Text=Dt.行(0).项(1)
TxtCust_Area.Text=Dt.行(0).项(2)
其他的
TxtCust_Id.Text=String.Empty
TxtCust_City.Text=String.Empty
TxtCust_Area.Text=String.Empty
如果结束
文本框名称会根据查询表进行更改。我的问题是。是否可以使用循环或任何其他方法使函数或过程从datatable填充文本框中的数据?提前谢谢

共享函数ExecuteSelectDt(ByVal SelectCommand作为字符串)作为数据表
Cmd=New SqlClient.SqlCommand
Sda=新的SqlDataAdapter
'Dt=新数据表
尝试
DBConnection()'数据库连接详细信息
Sda=新的SqlDataAdapter(SelectCommand,Con)
Dim dt2作为新数据表
Sda.填充(dt2)
CloseConnection()
返回dt2
特例
CloseConnection()
MsgBox(例如消息)
返回dt
结束尝试
端函数
私有子TxtCust\u Name\u Leave(发送方作为对象,e作为事件参数)处理TxtCust\u Name.Leave
squry=“从TBLCustommers中选择Cust_Id、Cust_City、Cust_Area,其中Cust_Name=”&TxtCust_Name.Text&“”
Dt=无
Dt=BM_Class_library.SQLSereverDB.ExecuteSelectDt(SQuery)
如果Dt.Rows.Count>0,则
TxtCust_Id.Text=Dt.行(0).项(0)
TxtCust_City.Text=Dt.行(0).项(1)
TxtCust_Area.Text=Dt.行(0).项(2)
其他的
TxtCust_Id.Text=String.Empty
TxtCust_City.Text=String.Empty
TxtCust_Area.Text=String.Empty
如果结束
端接头
'创建并填充列表
将txtboxs设置为新列表(文本框)();
对于Form.Controls中的每个ctrl as控件
如果ctrl.GetType()是GetType(TextBox),那么txtboxs.Add(ctrl)
下一个
'然后在获取DataTable时执行此操作
按DataRow=dt.Rows(0);'不管你的逻辑是什么,你都会得到需要的结果
对于每个列,作为dt.列中的DataColumn
'使用system.linq
txtboxs.First(函数(tb)tb.Name=col.ColumnName).Text=theRow(col.ColumnName).ToString()
下一个
注意,当
row(col.ColumnName)
DBNull.Value
时,
ToString
将返回
string.Empty
,这很好,因为
.Text
不能包含
任何内容

此外,我首先使用了
,因为我这样做的前提是每列都有文本框

或者,使用字典。我觉得更好

创建并填充字典 将txtboxs设置为新字典(字符串、文本框)(); 对于Form.Controls中的每个ctrl as控件 如果ctrl.GetType()是GetType(TextBox),那么txtboxs.Add(ctrl.Name,ctrl) 下一个 '然后在获取DataTable时执行此操作 按DataRow=dt.Rows(0);'不管你的逻辑是什么,你都会得到需要的结果 对于每个列,作为dt.列中的DataColumn txtboxs(col.ColumnName).Text=theRow(col.ColumnName).ToString() 下一个
使用数据绑定。你将避免大量的代码。兄弟,请解释我想向你学习。谷歌搜索数据绑定教程。对于Windows窗体来说,这是一个不错的选择。我还建议您使用数据集设计器,并在设计器中创建所有查询。类型化数据适配器将自动为您创建。数据表和数据行也是如此。非常感谢我忽略了数据绑定。但现在我将阅读并重点介绍数据绑定。