前回の質問に基づいてSQL Serverストアドプロシージャを作成しました。これはどの質問に答えられたのですか?これは新しい質問を作成する理由です。VBでSQL Serverストアドプロシージャを呼び出す
私が午前トラブルがVBでそれを呼び出す方法をあまりにも確認されていません
ALTER Procedure [dbo].[usp_validatecard](
@CLUBCARD1 nvarchar(50),
@STATUS nvarchar(50))
As
BEGIN
IF EXISTS(Select CLUBCARD1, STATUS
from dbo.clubmembers
where CLUBCARD1 = @CLUBCARD1 and STATUS = 'ACTIVE')
Print 'Card is GOOD'
ELSE
IF EXISTS(SELECT CLUBCARD1, STATUS
FROM dbo.clubmembers
where CLUBCARD1 = @CLUBCARD1 and STATUS = 'INACTIVE')
PRINT 'Card is good but not active'
ELSE
PRINT 'CARD NOT IN SYSTEM'
END
ストアドプロシージャ。 clubcardパラメータがある場合、私はこれまでのところ、私がやろうとしていますこれは何
Imports System.Data.SqlClient
Imports System.Web.Configuration
Imports System.Data
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub cmdclick_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdclick.Click
Dim strConnString As String = WebConfigurationManager.ConnectionStrings("orca").ConnectionString
Dim con As New SqlConnection(strConnString)
Dim cmd As New SqlCommand("usp_validatecard", con)
cmd.CommandType = Data.CommandType.StoredProcedure
cmd.Parameters.Add("@CLUBCARD1", Data.SqlDbType.NVarChar).Value = txtvalidate.Text
Try
con.Open()
Dim Result As Integer = cmd.ExecuteNonQuery()
Catch ex As SqlException
lblmessage.Text = "Error"
Finally
con.Close()
End Try
End Sub
End Class
ですがclubcardパラメータが見つかり、ステータスがアクティブである場合、私はラベルが読みたいです持っているコードも「カードが良いです」しかし、アクティブではないことが判明した場合、ラベルには「カードは正常ですが有効ではありません」と表示されます。ストアドプロシージャを呼び出してexecを実行するだけで、エラーを出しているものに応じてステートメントが出力されます。
私はそれをデバッグするときに私が手にエラーがインデックス 財産を評価するために
項目で、プロパティは 資格と引数を明示的に でなければなりませんcmd.parameters.addの下にありますユーザによって供給される。
ストアドプロシージャから '@STATUS nvarchar(50)'パラメータを削除できますか?それが使用されているように見えないし、あなたのvb.netコードで設定されていません。 –