C#을 웹 페이지에서 여러 매개 변수와 SQL 함수를 호출하는 방법 :나는 다음과 같은 구문으로 호출되는 MS SQL 기능이
SELECT Field1, COUNT(*) AS RecordCount
FROM GetDecileTable('WHERE ClientID = 7 AND LocationName = ''Default'' ', 10)
첫 번째 매개 변수는 함수가 사용하는 특정 WHERE
절을 통과 내부 쿼리 중 하나에 대한 I 프런트 엔드 C# 1 페이지에이 함수를 호출 할 때, I는 WHERE
절 내부의 개별 필드에 대한 파라미터 값을 보낼 필요가 (본 예에서는, 모두 ClientID
& LocationName
필드)
현재 C# 코드는 같다 내가, 내가 SQL 프로파일 러에서 다음 코드이받을 수 있나요 때
String SQLText = "SELECT Field1, COUNT(*) AS RecordCount FROM GetDecileTable('WHERE
ClientID = @ClientID AND LocationName = @LocationName ',10)";
SqlCommand Cmd = new SqlCommand(SQLText, SqlConnection);
Cmd.Parameters.Add("@ClientID", SqlDbType.Int).Value = 7; // Insert real ClientID
Cmd.Parameters.Add("@LocationName", SqlDbType.NVarChar(20)).Value = "Default";
// Real code uses Location Name from user input
SqlDataReader reader = Cmd.ExecuteReader();
:이이 실행
exec sp_executesql N'SELECT Field1, COUNT(*) as RecordCount FROM GetDecileTable
(''WHERE ClientID = @ClientID AND LocationName = @LocationName '',10)',
N'@ClientID int,@LocationID nvarchar(20)',
@ClientID=7,@LocationName=N'Default'
를, SQL은 첫 과거 구문 분석 할 수없는 오류가 발생합니다 @ClientID
에 스칼라 변수 @ClientID
이 정의되어야한다고 언급되어 있습니다. 변수를 먼저 선언하도록 코드를 수정하면 두 번째로 @ClientID
에 변수가 이미 있음을 알리는 오류가 발생합니다.
exec sp_executesql N'DECLARE @ClientID int; DECLARE @LocationName nvarchar(20);
SELECT Field1, COUNT(*) as RecordCount FROM GetDecileTable
(''WHERE ClientID = @ClientID AND LocationName = @LocationName '',10)',
N'@ClientID int,@LocationName nvarchar(20)',
@ClientID=7,@LocationName=N'Default'
는 내가 테이블에서 데이터를 선택하고 할 때 매개 변수를 추가 및 C#에서 SQL 코드를 호출하는이 방법이 잘 작동하는지 알고 있지만 나는 WHERE
임베디드의 '인용 부호 안에 매개 변수를 포함하는 방법을 잘 모르겠습니다 절이 함수에 전달됩니다.
아이디어가 있으십니까?
감사하지만,이 상황에서 청구서에 맞지 않습니다. 문제는 하위 WHERE 절에 포함 된 따옴표로 인해 발생합니다. – Marshall