У меня есть хранимая процедура на моем сервере, которая вставляет некоторые параметры и возвращает ID
, который был вставлен.Я пишу форму, чтобы сделать это легко, но я не могу получить параметр, который передается обратно.
Чтобы избавить вас от ненужного чтения, возможно, лучше просто обратить внимание на мой код C # и сообщить, что мне нужно сделать, чтобы передать параметры и получить их взамен.
C # Default.aspx
connection = new SqlConnection(ConfigurationManager.AppSettings["ConnectionInfo"]);
sql = "aStoredProc";
command = new SqlCommand(sql, connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameter.Add(new SqlParameter("@FirstName", SqlDbType.VarChar)).Value = sFirstname;
command.Parameter.Add(new SqlParameter("@SurName", SqlDbType.VarChar)).Value = sSurname;
connection.Open();
int ID = command.ExecuteNonQuery();
connection.Close();
SQL aStoredProc
IF EXISTS(SELECT * FROM aTable WHERE ID = @ID)
-- User exists, update details
BEGIN
BEGIN TRAN
UPDATE aTable
SET
FirstName = @FirstName,
SurName = @SurName,
LastUpdate = GetDate()
WHERE ID = @ID
IF (@@Error != 0)
ROLLBACK TRAN
ELSE
COMMIT TRAN
END
ELSE
-- New user
BEGIN
BEGIN TRAN
INSERT aTable (
FirstName,
SurName,
GetDate()
)
VALUES (
@FirstName,
@SurName,
@LastUpdate
)
SELECT @ID = @@IDENTITY
IF (@@Error != 0)
ROLLBACK TRAN
ELSE
COMMIT TRAN
END
Параметр @ID
указан вхранится proc как:
@ID (int, Input/Output, No default)
, и proc имеет 'Return integer'.Раньше он работал нормально с решением VBA до обновления SQL Server 2005.
Заранее спасибо.