C# 一次查询多表,填充DataSet并指定表名

本文介绍如何在.NET中通过一次查询从数据库获取多张表,并使用SqlDataAdapter的TableMappings属性来指定填充到DataSet中各DataTable的具体名称,以便更好地在程序中管理和使用这些数据。

lhrhi 原文 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 的表),和数据库里的表联系起来,方便在程序使用。

 

C#中,可以使用DataSet类来示一个内存中的数据集合,DataSet可以包含个数据(DataTable)以及数据关系。如果需要访问DataSet中的指定数据,可以通过索引器或来获取数据。 以下是使用索引器访问DataSet中的指定数据的示例代码: ``` DataSet dataSet = new DataSet(); // 假设已经使用DataAdapter将数据填充DataSet中 DataTable dataTable = dataSet.Tables[0]; // 处理数据 ``` 以上代码中,首先创建了一个DataSet对象,然后使用DataAdapter将数据填充DataSet中。接着使用索引器获取了第一个数据,该索引器的参数可以是数据的索引或。 以下是使用访问DataSet中的指定数据的示例代码: ``` DataSet dataSet = new DataSet(); // 假设已经使用DataAdapter将数据填充DataSet中 DataTable dataTable = dataSet.Tables["TableName"]; // 处理数据 ``` 以上代码中,使用来获取数据,与使用索引器获取数据相比,使用的方式更加直观。 需要注意的是,在访问DataSet中的数据时,应该先判断数据是否存在,以避免出现空引用异常。可以使用DataSet对象的Tables属性来获取所有的数据,然后判断指定的数据是否在其中。 示例代码: ``` if (dataSet.Tables.Contains("TableName")) { DataTable dataTable = dataSet.Tables["TableName"]; // 处理数据 } ``` 以上代码中,先使用Tables属性获取所有的数据,然后使用Contains方法判断指定的数据是否在其中。如果数据存在,就可以使用来获取数据了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值