نوشته شده توسط
kamiloted
سلام دوست عزیز مشکلم حل نشد.
من با استورید پروسیجر دستور اینزرت رو نوشتم.
ممنون میشم اگه کمکم کنید.
یه پارامتر خروجی به پروسچر اضافه می کنی
و با استفاده از SCOPE_IDENTITY آخرین آی دی ثبت شده رو دریافت کرده و به اون پارامتر خروجی انتصاب می دی :
ALTER PROCEDURE [dbo].[NewUser]
@f_name varchar(50),
@l_name varchar(50),
@id int output
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO users (f_name, l_name)
VALUES (@f_name, @l_name)
SET @id=SCOPE_IDENTITY()
RETURN @id
END
بعد سمت برنامه هم موقع ثبت رکورد جدید اون پارامتر خروجی رو دریافت کرده و نمایش می دی
String strConnString = @"Data Source=ALMA-PC\SQLEXPRESS;Initial Catalog=kaka;Integrated Security=True;Pooling=False";
SqlConnection con = new SqlConnection(strConnString);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "NewUser";
cmd.Parameters.Add("@f_name", SqlDbType.VarChar).Value = txtFirstName.Text.Trim();
cmd.Parameters.Add("@l_name", SqlDbType.VarChar).Value = txtLastName.Text.Trim();
cmd.Parameters.Add("@id", SqlDbType.Int).Direction = ParameterDirection.Output;
cmd.Connection = con;
try
{
con.Open();
cmd.ExecuteNonQuery();
string id = cmd.Parameters["@id"].Value.ToString();
MessageBox.Show("ثبت با موفقیت انجام شد "+"\n" +" آیدی ثبت شده"+" : "+ id);
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
con.Dispose();
}