.NET 一次查询多表,填充DataSet并指定表名(DataSet指定DataTable名称的技巧)

现实中的场景,有时可能需要一次查询数据库中表张, 

在使用SqlDataAdapter类的Fill方法填充DataSet, 同时指定填充到DataSet中DataTable表名,

例如设置成跟数据库一样的。


可以通过SqlDataAdapter类的TableMappings属性实现。

SqlDataAdapter类的Fill方法填充DataSet中表名称,默认是Table, Table1, Table2……


SqlConnection conn=new SqlConnection("server=.; database=DataBaseName; uid=sa; pwd=sa");  //数据库连接,可以自己定义。

string sql="SELECT * FROM User; SELECT * FROM Product; SELECT * FROM Article;";

SqlCommand cmd=new SqlCommand(sql,  conn);

SqlDataAdapter adapter=new SqlDataAdapter(cmd);

//指定表名, TableMappings.Add方法,第一个参数是Fill DataSet时默认的表名,第二参数是指定的表名,可以根据需要自定义。

adapter.TableMappings.Add("Table", "User");

adapter.TableMappings.Add("Table1", "Product");

adapter.TableMappings.Add("Table2", "Article");

DataSet ds=new DataSet();

adapter.Fill(ds);  //被填充到DataSet中有三张表,分别是User,Product,Article

这样就可以了,

很容易将查询返回多个表(填充到DataSet 的表),和数据库里的表联系起来,方便在程序使用。





  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 在VB.NET中,可以使用DataSet的Copy方法将DataSet中的数据复制到一个新的DataTable中。具体的代码如下所示: ```vb Dim dataSet As New DataSet() ' 假设ordersTable是已经填充好数据的DataTable Dim ordersTable As DataTable = dataSet.Tables("Orders") ' 创建一个新的DataTable,并将ordersTable中的数据复制到新的DataTable中 Dim newDataTable As DataTable = ordersTable.Copy() ``` 通过调用Copy方法,可以将DataSet中的数据复制到一个新的DataTable中,然后可以对新的DataTable进行操作。\[2\] 需要注意的是,如果你只是想在代码中使用DataTable,而不需要使用DataSet,可以直接从数据库中获取数据并填充DataTable中,而不需要使用DataSet。你可以使用ADO.NET提供的SqlConnection和SqlDataAdapter类来实现这个功能。具体的代码如下所示: ```vb Dim connStr As String = "Data Source=PC-201104071256\sqlEXPRESS;Initial Catalog=Northwind;Integrated Security=True" Dim conn As New SqlConnection(connStr) Dim sql As String = "SELECT * FROM Orders" Dim adapter As New SqlDataAdapter(sql, conn) Dim dataTable As New DataTable() adapter.Fill(dataTable) ``` 通过使用SqlConnection和SqlDataAdapter类,可以连接到数据库并执行查询,然后将查询结果填充DataTable中。\[3\] #### 引用[.reference_title] - *1* *2* [VB.Net DataSetDataTable](https://blog.csdn.net/wulingmin21/article/details/6888461)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [vb.net中从datatable读取数据到Excel](https://blog.csdn.net/weixin_35651102/article/details/117833978)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值