0
Dim db As Database = DatabaseFactory.CreateDatabase()
    Dim sqlCommand As String = "CategoryListShow"
    Dim cmd As DbCommand = db.GetStoredProcCommand(sqlCommand)
    cmd.Parameters.Add(New SqlParameter("@ID", SqlDbType.Int).Direction = ParameterDirection.Input)
    cmd.Parameters.Add(New SqlParameter("@ID", SqlDbType.Int, 4).Value = CategoryIdTxt.Text.Trim())
    cmd.Parameters.Add(New SqlParameter("@CategoryResult", SqlDbType.VarChar, 50).Direction = ParameterDirection.Output)
    Dim sqlReader As SqlDataReader = cmd.ExecuteReader()
    txtCategory.Text = cmd.Parameters("@CategoryResult").Value.ToString()
    sqlReader.Close()

ストアド プロシージャ「CategoryListShow」を呼び出しています。ストアド プロシージャには 2 つのパラメーターがあります。1 つは入力パラメーターである ID で、CategoryResult は出力パラメーターです。出力パラメータの値をこのテキスト ボックス txtCategory.Text に表示しようとしています。

エラー:これを言っている黄色い画面

SqlParameterCollection は、Boolean オブジェクトではなく、null 以外の SqlParameter 型のオブジェクトのみを受け入れます。

私を案内してください。

4

2 に答える 2

3

@ID の値を設定している行で、これに変更します。

cmd.Parameters@("ID").Value = CategoryIdTxt.Text

再度宣言する必要はありません。その値を設定するだけです。パラメータを処理する最良の方法は、次の 2 行のコードを使用することであることがわかりました。

cmd.Parameters.Add(New SqlParameter("@ProdID", Data.SqlDbType.Int)).Direction = ParameterDirection.Input
cmd.Parameters("@ProdID").Value = tProdID'obviously don't need this if it is an Output Param
于 2013-07-12T12:16:56.200 に答える