Параметры out часто используются для возврата одной записи, когда известно, что когда-либо будет возвращена только одна запись (например, выбор на основе первичного ключа)
у выполнить поиск по таблице, чтобы увидеть, существует ли запись. Я не хочу выполнять вставку или обновление после. Я уже сделал это, но почему-то я не могу заставить это работать. На моей странице asp.net я не могу получить какое-либо возвращаемое значение. Ошибка «входная строка не в правильном формате». Я уверен, что это очевидно, но сейчас я не вижу ее!
вот мой код:
Dim con As New SqlConnection("connstring")
Dim cmd As New SqlCommand("checkname", con)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add(New SqlParameter("@d", SqlDbType.Int))
cmd.Parameters("@id").Value = TextBox1.Text
Dim para As New SqlParameter
para.Direction = ParameterDirection.ReturnValue
para.ParameterName = "returnvalue"
cmd.Parameters.Add(para)
con.Open()
cmd.ExecuteNonQuery()
Dim exists As Integer
exists = Convert.ToInt32(cmd.Parameters("returnvalue").Value)
If exists = 1 Then
Label1.Text = "You......"
ElseIf exists = 0 Then
Label1.Text = "You....."
End If
con.Close()
хранимая процедура:
CREATE PROCEDURE checkname
-- Add the parameters for the stored procedure here
@id int
AS
--This means it exists, return it to ASP and tell us
-- SELECT 'already exists'
IF EXISTS(SELECT * FROM attendees WHERE id = @id)
BEGIN
RETURN 1
END
ELSE
BEGIN
RETURN 0
END