【发布时间】:2015-12-10 20:02:19
【问题描述】:
如果我有一个存储过程是
Alter dbo.Testing
Select userid from masterdb
where employed = 'Yes'
Select Count(*) from leftfield
where pin is not null
如何将每个查询的返回结果存储在单独的数据集中?
伪代码:
firstdataset = Select userid from masterdb where employed = 'Yes'
seconddataset = select count(*) from leftfield where pin is not null
编辑
我使用它来将 1 个结果集从存储过程返回到 C# 数据集。是否可以返回超过 1 个?
public DataSet RunStoredProc(string databaseConnection)
{
ds = new DataSet();
DSqlQueryBuilder = new StringBuilder();
SqlQueryBuilder.Append("exec dbo.StoredProc ");
SqlConnection = new SqlConnection(connectionString);
SqlCommand = new SqlCommand(sqlQuery, SqlConnection);
SqlConnection.Open();
SqlCommand.CommandTimeout = 0;
ds = new DataSet();
SqlDataAdapter = new SqlDataAdapter(SqlCommand);
SqlDataAdapter.Fill(ds, "Data");
return ds;
}
编辑 #2
public DataSet RunStoredProc(string databaseConnection)
{
ds = new DataSet();
DSqlQueryBuilder = new StringBuilder();
SqlQueryBuilder.Append("exec dbo.StoredProc ");
//Error 1 On Line Below
ds = ExecuteSqlQuery(databaseConnection, SqlQueryBuilder.ToString());
return ds;
}
public List<DataTable> RunStoredProc(string databaseConnection)
{
var dataTables = new List<DataTable>();
DSqlQueryBuilder = new StringBuilder();
SqlQueryBuilder.Append("exec dbo.StoredProc ");
SqlConnection = new SqlConnection(connectionString);
SqlCommand = new SqlCommand(sqlQuery, SqlConnection);
var reader = SqlCommand.ExecuteReader();
DataTable dt1 = new DataTable();
dt1.Load(reader);
dataTables.Add(dt1);
DataTable dt2 = new DataTable();
dt2.Load(reader);
dataTables.Add(dt2);
return dataTables;
}
错误 #1
无法将类型“System.Collections.Generic.List”隐式转换为“System.Data.DataSet”
【问题讨论】:
-
@axlj - 不,我的存储过程返回 2 个完全独立的结果集。我想在我的 C# 中获取每个结果集的结果并将其存储在 2 个单独的数据集中。
标签: c# webforms sql-server-2008-r2