2010-12-06 51 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"を宣言する

この行に:

myAdapter.Fill(ds, tablename) 

どうすればその行を修正できますか?

ありがとうございます。

+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 New SqlClient.SqlDataAdapter(cmd) ' – SLaks

関連する問題