私が持っているシナリオと私が探している解決策について詳しく説明しましょう。まず、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;
}
ここで、ここのように必要なものを簡単に取得し、必要なevver行を見つけることができます。
DataRowCollection people = Util.SelectData("Select * from students")
しかし今、私は上記のようなストアドプロシージャを作成し、次のようなことを行うことを計画しています。
**DataTableCollection** people = Util.SelectData("exec dbo.Testing")
アップデート:
そのため、ストアドプロシージャから特定のテーブルを見つけることができます。
DataTable、DataSet、DataTableCollectionsを使用しようとしましたが、成功しませんでした。適切な方法で使用できません。
私を助けてください
ありがとうございました