我有一个让我感到沮丧的问题,我用谷歌搜索和搜索,但找不到我想要的。
我有这个 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
提前感谢您的帮助。
谢谢,史蒂夫