让我详细解释一下我所拥有的场景以及我正在寻找的解决方案。 首先,我创建了一个存储过程,输出简单的东西,如2个表和一个消息'不要停在这里'“
T-SQL:
USE [mydb]
GO
/****** Object: StoredProcedure [dbo].[BackupDatabase] Script Date: 2/26/2013 11:29:10 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[testing]
AS
BEGIN
select 'A' firstname, 'B' lastname;
print 'dont stop here'
select 1 final
END
到目前为止,我曾经使用datarowcollection类以单一方式查看表,我的静态方法如下所示:
C#:
public static class DataMan
{
public static DataRowCollection SelectData(string sql)
{
SqlDataSource DS = new SqlDataSource(CS, sql);
return ((DataView)DS.Select(DataSourceSelectArguments.Empty)).ToTable().Rows;
}
public static string CS = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
}
我可以在这里轻松获得我需要的东西,并找到我想要的那个行:
DataRowCollection people = Util.SelectData("Select * from students")
但是现在我打算创建一个存储过程,就像我上面提到的那样,做这样的事情,例如:
**DataTableCollection** people = Util.SelectData("exec dbo.Testing")
更新
所以我可以从我的storedprocedure找到特定的表。
我曾尝试使用DataTable,DataSet,DataTableCollections但没有成功。我无法以正确的方式使用它们。
请帮帮我
谢谢
答案 0 :(得分:3)
虽然它可以在您在此处说明的代码隐藏中使用,但SqlDataSource更常用于ASP.NET标记页面上的声明方式。但是,根据您的启动,在调用存储过程时,您应该将SqlCommandType
设置为StoredProcedure
,将过程的名称提供给SelectCommand
,然后返回{{1 }}。反过来,DataReader
支持DataReader
方法,您可以调用该方法来检索您的过程提供的每个离散结果集。这是一个伪代码框架,试图说明如何利用它:
NextResult()