DbDataAdapter.Fill是否保证返回表名为Table、Table1等序列?
关于DbDataAdapter默认表命名与TableMappings的安全性
这些Table、Table1、Table2的默认命名是有官方保证的稳定行为,完全可以安全地用于TableMappings来设置自定义表名。
根据.NET官方文档的明确约定:
当查询返回多个结果集时,每个结果集会被存入单独的DataTable。第一个结果集对应的表默认命名为
Table,后续的结果集依次命名为Table1、Table2……以此类推。
你提供的示例代码里,通过adapter.TableMappings.Add("Table", "Suppliers")将默认表名映射为自定义名称的用法,是完全符合框架设计意图的安全操作。如果你的查询返回多个结果集,也可以按同样的规则依次映射:
// 映射第一个结果集的默认表名Table为Suppliers adapter.TableMappings.Add("Table", "Suppliers"); // 映射第二个结果集的默认表名Table1为Products adapter.TableMappings.Add("Table1", "Products");
需要注意的是,这个命名规则是DbDataAdapter抽象层的通用约定,所有继承自它的实现(比如SqlDataAdapter、OleDbDataAdapter等)都会遵循这一行为,不存在不同数据库适配器之间的行为差异,可以放心使用。
内容的提问来源于stack exchange,提问作者formicini
相关产品推荐
相关产品推荐

