PDA

View Full Version : سوال: با چه کدی مقدار یک متغیر output را در محیط ASP بگیرم؟



veniz2008
پنج شنبه 14 مهر 1390, 00:57 صبح
سلام،درباره کار با stored procedure یه سوال داشتم،یک جدول دارم که فیلد userid رو به عنوان کلید قرار دادم،حالا یه sp ساده واسه عمل insert نوشتم که میخوام قبل از درج رکورد جدید،اول چک کنه که آیا این userid قبلا ثبت شده یا نه،واسه همین یه متغیر صحیح به نام result@ و از نوع output تعریف کردم،حالا مشکلم اینه که نمیدونم با چه کدی مقدار این متغیر رو واسه محیط ASP بفرستم وهمچنین در محیط ASP با چه کدی این مقدار رو بگیرم،(مقدار 1 برای وجود داشتن رکورد و مقدار 0 برای وجود نداشتن رکورد در نظر گرفتم)،من کد sp خودم رو میذارم ممنون میشم راهنمایی کنید،تشکر.

create proc adduser
@userid int,
@name nvarchar(50),
@family nvarchar(50),
@result int output
as
if(EXISTS(select * from users where userid=@userid))
set @result=1
else
begin
set @result=0
insert into users(userid,name,family)values(@userid,@name,@fam ily)
end
go

moferferi
جمعه 15 مهر 1390, 12:44 عصر
سلام.
توی کدی زیر نحوه کار با فرستادن یک پارامتر با پروسیجر و گرفتن مقدار برگشتی اون نمایش داده شده
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_orders_by_employeeid2";
//create input parameter
SqlParameter inparm = cmd.Parameters.Add("@employeeid", SqlDbType.Int);
inparm.Direction = ParameterDirection.Input;
inparm.Value = 2;
//create output parameter
SqlParameter ouparm = cmd.Parameters.Add("@ordercount", SqlDbType.Int);
ouparm.Direction = ParameterDirection.Output;
//cretae return value parameter
SqlParameter retval = cmd.Parameters.Add("@return_value", SqlDbType.Int);
retval.Direction = ParameterDirection.ReturnValue;
//
SqlDataReader rdr = cmd.ExecuteReader();

while (rdr.Read())
{
dataGridView2.Rows.Add(rdr[0], rdr[1]);
}
rdr.Close();
MessageBox.Show(cmd.Parameters["@ordercount"].Value.ToString());

MessageBox.Show(cmd.Parameters["@return_value"].Value.ToString());
conn.Close();