4

ストアドプロシージャから配列を返す必要があります。そしてクライアント側では、最後にc#とado.netを使用してデータを取得する必要があります。

CREATE PROCEDURE [dbo].[usp_testing]

AS
BEGIN

DECLARE @ARRAY TABLE(sno int,id nvarchar(50)

INSERT @ARRAY(sno,id) values(1,'v123')
INSERT @ARRAY(sno,id) values(2,'v124')
INSERT @ARRAY(sno,id) values(3,'v124')
END

この@Arrayテーブルは、クライアント側に返され、取得される必要があります

4

2 に答える 2

7

@ARRAY配列ではありません:それはテーブルです。テーブルを取得するためのメカニズムは単純で、よく実践されています。

select * from @ARRAY

クライアントでそれを取得するには、ExecuteReaderまたはDataTableのようなものを使用してください。またはdapperのようなもの:

var arr = connection.Query(
    "usp_testing", commandType: CommandType.StoredProcedure)
    .Select(row => Tuple.Create((int)row.sno, (string)row.id)).ToArray();

これはタプルの配列です。

于 2012-08-31T09:56:58.280 に答える
2
create procedure strange_procedure as
begin

DECLARE @ARRAY TABLE(id int not null identity primary key, value varchar(50))

insert into @ARRAY (value) values ('This value')

select  *  from @ARRAY


end
于 2012-08-31T10:05:13.630 に答える