2012-01-06 14 views
0

私は自分のプロジェクト変数に最近アクセスした値のリストを含んでいます。これらの値の助けを借りて、データベースからデータを取得する必要があります。単一のパラメータ(@myparam)を持つストアドプロシージャですが、テーブルからは1行しか与えられません。 storedprocedureのセッションリストを使用してテーブルから行のリストを取得するにはどうすればよいですか?ストアドプロシージャのセッションリストを使用して行のリストを取得する方法

+0

を試してみてください - あなたが必要な正確に何を、例 –

+0

を与える、私はテーブルの例から行を取得するために私にStoredProcにpassigセッションリストを午前:PARAMATERS .Add(getParam( "@ recentAssetList"、DbType.AnsiString、recentAssetList)); return executeDataset( "xp_ListRecentAssets"、paramaters);この "recentAssetList"には、セッションから取得している値のリストが含まれています –

+0

まだ明確ではありません - 私が見る限りspから結果セットを返すように求めています - あなたはすでにexecuteDatasetのようなものを呼び出していますあなたにテーブルがあります –

答えて

0

私は右のあなたを理解している場合、それは明らかではないが、この

CREATE function [dbo].[csv2tbl](@list nvarchar(max), @delimiter nvarchar(10)) 
returns @res table ([index] int PRIMARY KEY, col nvarchar(max)) 
AS BEGIN 
with tbl_for_csv as 
(
select 0 as [index] ,left(@list + @[email protected],charindex(@delimiter,@list + @[email protected]) -1)as col, 
right(@list + @[email protected],len(@list + @[email protected]) - charindex(@delimiter,@list + @[email protected])) as Str 
union all 
select [index]+1, left(Str,charindex(@delimiter,Str) - 1)as Col, 
right(Str,len(Str) - charindex(@delimiter,Str)) from tbl_for_csv 
where len(right(Str,len(Str) - charindex(@delimiter,Str))) > 0 
) 
INSERT @res 
select [index], col from tbl_for_csv option (MAXRECURSION 0); 
return; 
END 
GO 
SELECT * 
from YourTable 
JOIN [dbo].[csv2tbl](@recentAssetList, ',') x ON x.col = yourtable.Id 
+0

再生していただきありがとうございます。私のコードです:recentAssetList = SessionData.RecentAssetList;(例:recentAssetList = 1,2,3,4 ..)grdRecentAssetList.DataSource = DataAccess.ListRecentAssets(recentAssetList); grdRecentAssetList.DataBind(); DataAccessクラスでは:public static DataSet ListRecentAssets(string recentAssetList){try {ArrayList paramaters = getParamArray();パラメータ:paramaters.Add(getParam( "@ recentAssetList"、DbType.AnsiString、recentAssetList)); return executeDataset( "xp_ListRecentAssets"、paramaters); } –

関連する問題