イライラする質問があり、ググってググったのですが、欲しいものが見つかりません。
私はこの SQL Server ストアド プロシージャを持っています。これはうまく機能し、一意の識別子を返します。
ALTER PROCEDURE [dbo].[mcd_AddLogin]
@UserName nvarchar(256),
@Password nvarchar(256),
@UID uniqueidentifier OUTPUT
AS
BEGIN
IF( @UID IS NULL )
SELECT @UID = NEWID()
ELSE
BEGIN
IF( EXISTS( SELECT [USERNAME] FROM dbo.LoginPassing_Active) )
RETURN -1
END
Declare @Active bit
Declare @Exp_Date datetime
Set @Active = 1
Set @Exp_Date = DATEADD(mi, 1, GETDATE())
INSERT dbo.LoginPassing ([USERNAME], [PASSWORD], [ACTIVE], [EXP_DATE], [UID])
VALUES (@UserName, @Password, @Active, @Exp_Date, @Uid)
RETURN 0
END
これを ASP.NET アプリケーションで使用しようとすると、次のエラーが発生します。
プロシージャまたは関数 'mcd_AddLogin' には、指定されていないパラメーター '@UID' が必要です。
以下は私のASP.Netアプリケーションのコードです。誰かが間違っていることを解決するのを手伝ってくれますか?私はそれが本当に単純で、トリックを逃しただけだと確信しています:
Dim conSQL As New SqlConnection
conSQL.ConnectionString = My.Settings.conSQL
conSQL.Open()
Dim comSQL As New SqlCommand
comSQL.Connection = conSQL
comSQL.CommandText = "mcd_AddLogin"
comSQL.CommandType = CommandType.StoredProcedure
comSQL.Parameters.Add("@Username", SqlDbType.NVarChar).Value = "username"
comSQL.Parameters.Add("@Password", SqlDbType.NVarChar).Value = "password"
comSQL.ExecuteNonQuery()
litAD.Text = comSQL.Parameters("@UID").Value
あらかじめご了承ください。
ありがとう、スティーブ