2010-12-06 11 views
1

여기 내 코드입니다 :오류 : 스칼라 변수를 선언해야

Public Function selectReturnsByUserId(limit As Integer, userid As String) As DataSet 



    Dim sql As String = " SELECT TOP " & limit & " pr.ProductId, p.Title, p.Barcode, pr.ScanDate, pr.UserId, pr.ReturnStatus" & _ 
         " FROM " & tablename & " pr " & _ 
         " INNER JOIN " & StaticValues.TABLENAME_PRODUCT & " p ON pr.ProductId = p.ProductId" & _ 
         " WHERE pr.UserId = @UserId" 

    Dim cmd As SqlClient.SqlCommand = New SqlClient.SqlCommand(sql) 

    cmd.Parameters.AddWithValue("@UserId", userid) 

    Return _select(cmd) 

End Function 

호출 :

Protected Function _select(ByVal cmd As SqlClient.SqlCommand) As DataSet 

    Dim ds As New DataSet 
    Dim myAdapter As New System.Data.SqlClient.SqlDataAdapter(cmd.CommandText, DBConnection.getInstance().getConnection().ConnectionString) 
    myAdapter.Fill(ds, tablename) 

    Return ds 

End Function 

를 그리고 그것을 실행하려고하면, 나는이 오류를 얻을 :

해야합니다 스칼라 변수 "@UserId"를 선언하십시오.

다음 행 :

어떻게 수정하면됩니까?

감사

+0

대문자 사용은 매우 잘못되었습니다. http://msdn.microsoft.com/en-us/library/ms229043.aspx – SLaks

답변

2

당신은 SqlDataAdapter를에 매개 변수를 전달되지 않았다.

_select 메서드를 변경하여 원본 SqlCommand을 사용하거나 매개 변수를 복사해야합니다.

+0

죄송합니다. 귀하의 뜻을 지나치게 이해하지 않습니다. 예제를 제공해 줄 수 있습니까? – CrazyPenguin

+0

@Matthew : SqlParameter에 대해 어떻게 생각하십니까? – SLaks

+1

'Dim myAdapter As 새 SqlClient.SqlDataAdapter (cmd) ' – SLaks

관련 문제