0

우리는 비주얼 스튜디오 데이터 집합 디자이너에서 만든 같은 강력하게 형식화 된 데이터 집합이 쿼리가 : A의인텔리는 문자열해야 할 때 강력한 형식의 데이터 집합 쿼리에 대한 매개 변수가 소수 인 상태

SELECT ID, PaymentAmount, PaymentDate, WhatWasPaymentFor 
    FROM Payments 
WHERE ParentID = @ParentID 
    AND (@PaymentDate is null OR PaymentDate = @PaymentDate) 
    AND (@PaymentAmount is null OR PaymentAmount = @PaymentAmount) 
    AND ((@SearchValue is null OR 
     (WhatWasPaymentFor LIKE '%' + @SearchValue + '%' OR @SearchValue='ALL')) 
     ) 

을 VB.Net 코드는 숨김 파일 우리는 다음과 같이 데이터 집합을 채우기 위해 쿼리를 호출

Dim tblObject = theTableAdapter.GetDataByAllInOne(dcmParentsId, Nothing, Nothing, TextBoxSearch.Text) 

인텔리 나는 그것이 문자열이 될 것이라고 생각하는 경우 소수 인 것으로 4 매개 변수를 보여줍니다. 마우스가 @SearchValue에 대한 매개 변수 위에있을 때 이것을 발견했습니다. 이 코드가 실행되면

는이 오류가 표시됩니다

Conversion from string "Books" to type 'Decimal' is not valid. 

진수 인이 쿼리의 유일한 열 번째 매개 변수가 아닌 4 일 될 일이 PaymentAmount입니다.

intellisense가 @SearchValue의 네 번째 매개 변수가 Decimal 인 이유가 확실하지 않습니다. 문자열로 변경하는 방법을 보여줄 수 있습니까?

DECLARE @SearchValue VARCHAR = 'Books' 
DECLARE @ParentID INT = 3 
DECLARE @PaymentDate DATETIME = NULL 
DECLARE @PaymentAmount MONEY = NULL 

SELECT ID, PaymentAmount, PaymentDate, WhatWasPaymentFor 
    FROM Payments 
WHERE ParentID = @ParentID 
    AND (@PaymentDate is null OR PaymentDate = @PaymentDate) 
    AND (@PaymentAmount is null OR PaymentAmount = @PaymentAmount) 
    AND ((@SearchValue is null OR 
    (WhatWasPaymentFor LIKE '%' + @SearchValue + '%' OR @SearchValue='ALL')) 
     ) 

어쩌면 난 데이터 집합 디자이너에서 설정해야 뭔가가 :로 SQL 서버 Magagement Studio에서 실행하면

일어나지 않는이자 것은 쿼리 작업을 확인하는 것입니다 알지 못한다.

답변

1

디자이너는 예상 한 매개 변수를 예상 한 순서대로 표시합니다. 예를 들어 GetDataByAllInOne (@ ParentID, @ PaymentDate, @ PaymentAmount, @ SearchValue)과 같은 것이 표시되어야합니다. 먼저 확인할 수 있습니까?

+0

답변 해 주셔서 감사합니다. 나는 그것이 같은 순서에 있다고 믿지만, 내일 눈물로 직장이 폐쇄 된 이후로 내일 확인해야 할 것입니다. –

+0

Intellisense는 GetDataByAllInOne (ParentID As Integer, Date로 PaymentDate?, PaymentAmount를 String으로, SearchValue를 Decimal로 표시)? intellisense가 물음표 (?)를 붙이는 이유는 확실하지 않습니다. 게시물의 시작 부분에 디자이너에서 쿼리를 정의하는 방법이 나와 있습니다. 감사. –

+0

물음표는 nullable 유형임을 나타냅니다. 매개 변수로 아무것도 호출하지 않으므로 nullable 유형이어야합니다. Intellisense는 쿼리가 예상하는 매개 변수를 보여줍니다. '디자이너에서 쿼리를 어떻게 정의했는지'라는 말은 내가 의미하는 바가 아닙니다. tableadapter의 아래쪽 절반에는 데이터 집합 디자이너에서 쿼리가 예상되는 매개 변수와 함께 나열되어 있습니다. 인텔리 센스에서 볼 수 있듯이, 입력 한 것과 항상 같은 순서가되는 것은 아닙니다. – peterG

관련 문제