날짜에 대해 다중 값 매개 변수를 사용할 수있는 저장 프로 시저를 가져 오려고합니다. 이 SSRS에 있지하지만 난 그것과 같은 방법을 사용하려고 해요 :저장 프로 시저의 다중 값 날짜 매개 변수?
내가 SSRS에 INT와 VARCHAR 필드가이 방법을 사용ALTER PROCEDURE spSelectPlacementData
(
@ClientID SMALLINT,
@SourceFileDates VARCHAR(MAX)
)
AS
BEGIN
SELECT (snip)
FROM [APS].[dbo].[Account] A
WHERE ClientID = @ClientID
AND A.[SourceFileDate] IN (SELECT * FROM dbo.Split(@SourceFileDates))
END
다중 값 매개 변수를보고합니다. 내가 완전히 명확한에없는 것 같아
/****** Object: UserDefinedFunction [dbo].[Split] Script Date: 09/20/2011 11:16:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[Split]
/* This function is used to split up multi-value parameters */
(
@ItemList VARCHAR(MAX),
@delimiter CHAR(1)
)
RETURNS @IDTable TABLE (Item VARCHAR(MAX) collate database_default)
AS
BEGIN
DECLARE @tempItemList VARCHAR(MAX)
SET @tempItemList = @ItemList
DECLARE @i INT
DECLARE @Item VARCHAR(MAX)
SET @tempItemList = REPLACE (@tempItemList, @delimiter + ' ', @delimiter)
SET @i = CHARINDEX(@delimiter, @tempItemList)
WHILE (LEN(@tempItemList) > 0)
BEGIN
IF @i = 0
SET @Item = @tempItemList
ELSE
SET @Item = LEFT(@tempItemList, @i - 1)
INSERT INTO @IDTable(Item) VALUES(@Item)
IF @i = 0
SET @tempItemList = ''
ELSE
SET @tempItemList = RIGHT(@tempItemList, LEN(@tempItemList) - @i)
SET @i = CHARINDEX(@delimiter, @tempItemList)
END
RETURN
END
이 dbo.Split의 I 온라인 잡고 기능을 사용
string sourceFileDates = "";
foreach (DateTime file in job.sourceFiles)
{
if (file == job.sourceFiles.Last())
{
sourceFileDates += "'" + file.ToString("d") + "'";
}
else
{
sourceFileDates += "'" + file.ToString("d") + "', ";
}
}
selectRunCommand = new SqlCommand("spSelectPlacementData", sqlConnection);
selectRunCommand.CommandType = CommandType.StoredProcedure;
selectRunCommand.Parameters.Add("@ClientID", SqlDbType.SmallInt);
selectRunCommand.Parameters["@ClientID"].Value = job.clientID;
selectRunCommand.Parameters.Add("@SourceFileDates", SqlDbType.VarChar);
selectRunCommand.Parameters["@SourceFileDates"].Value = sourceFileDates;
: 여기
내가 SourceFileDates을 연결하기 위해 사용하고 코드입니다 SSRS가 비슷한 매개 변수 (코드에서 시도한 유일한 매개 변수) 인 경우와 매개 변수의 서식을 지정하는 방법과 날짜 데이터 형식이 필수 서식에 미치는 영향은 다릅니다. "문자열에서 날짜 및/또는 시간을 변환 할 때 변환이 실패했습니다." 둘 이상의 값을 선택할 때 오류가 발생합니다.편집 : 요청으로 foreach 루프 출력의 예 :
'2011년 9월 9일', '2011년 8월 19일', '2011년 8월 12일'
foreach 루프 다음에 sourceFileDates의 값을 표시합니다. – Icarus