为单个查询中多个 SQL 选择的结果定义表名称

发布于 2024-07-08 02:00:54 字数 194 浏览 15 评论 0原文

例如,如果我运行以下查询:

select * from table1
select * from table2

并使用数据库适配器(C#)运行它,我会得到一个包含两个表的数据集。 如何在 SQL 中定义结果表的名称?

我只能在 SQL 中执行此操作。 我无权访问 C# 代码。

For example if I run the following query:

select * from table1
select * from table2

And run it with a DB adapter (C#) I get a dataset with two tables.
How can I define the names for the result tables in SQL?

I can only do this inside the SQL. I don't have access to the c# code.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

十六岁半 2024-07-15 02:00:54

@Timothy Khouri:这是可以做到的! 编辑:但不是在 SQL 级别!

您可以在 DataAdapter 上使用 TableMappings。

如果DataAdapter的SelectCommand返回多个结果集,则DataAdapter使用表映射来填充DataSet中相应的DataTable。 默认情况下,第一个结果集将填充到名为“Table”的 DataTable,第二个结果集将填充到名为“Table1”的 DataTable 等。

SqlDataAdapter sqlDa = new SqlDataAdapter();
SqlCommand selectCmd = new SqlCommand();
selectCmd.CommandText = "spReturnMultpileResultSets";
selectCmd.CommandType = CommandType.StoredProcedure;
selectCmd.Connection = this.sqlConnection1;
sqlDa.SelectCommand = selectCmd;

// Add table mappings to the SqlDataAdapter
sqlDa.TableMappings.Add("Table", "Customers");
sqlDa.TableMappings.Add("Table1", "Orders");

// DataSet1 is a strongly typed DataSet
DataSet1 ds = new DataSet1();

this.sqlConnection1.Open();

sqlDa.Fill(ds);

this.sqlConnection1.Close();

参考:

http://blogs.msdn.com/vsdata/archive/2007/03/08/tableadapter-多个结果集.aspx
http://www.eggheadcafe.com/software/aspnet/32696845 /强类型数据集.aspx

@Timothy Khouri: It can be done! EDIT: but not at the SQL level!

You can use TableMappings on the DataAdapter.

If the SelectCommand of a DataAdapter returns multiple result sets, the DataAdapter uses table mappings to fill corresponding DataTables in a DataSet. By default, the first result set will be filled to a DataTable named "Table", and the second result set will be filled to a DataTable named "Table1" etc.

SqlDataAdapter sqlDa = new SqlDataAdapter();
SqlCommand selectCmd = new SqlCommand();
selectCmd.CommandText = "spReturnMultpileResultSets";
selectCmd.CommandType = CommandType.StoredProcedure;
selectCmd.Connection = this.sqlConnection1;
sqlDa.SelectCommand = selectCmd;

// Add table mappings to the SqlDataAdapter
sqlDa.TableMappings.Add("Table", "Customers");
sqlDa.TableMappings.Add("Table1", "Orders");

// DataSet1 is a strongly typed DataSet
DataSet1 ds = new DataSet1();

this.sqlConnection1.Open();

sqlDa.Fill(ds);

this.sqlConnection1.Close();

Refs:

http://blogs.msdn.com/vsdata/archive/2007/03/08/tableadapter-multiple-result-sets.aspx
http://www.eggheadcafe.com/software/aspnet/32696845/strongly-typed-datasets.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文