例如,如果我运行以下查询:
select * from table1
select * from table2
并使用数据库适配器(C#)运行它,我得到一个包含两个表的数据集。如何在 SQL 中定义结果表的名称?
我只能在 SQL 中执行此操作。我无权访问 c# 代码。
例如,如果我运行以下查询:
select * from table1
select * from table2
并使用数据库适配器(C#)运行它,我得到一个包含两个表的数据集。如何在 SQL 中定义结果表的名称?
我只能在 SQL 中执行此操作。我无权访问 c# 代码。
@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-multiple-result-sets.aspx http://www.eggheadcafe.com/software/aspnet/32696845/strongly-typed-datasets .aspx