PDA

View Full Version : دریافت پارامتر برگشتی از اجرای روال ذخیره شده



.مهدی فهمیده غلامی.
پنج شنبه 11 خرداد 1385, 09:38 صبح
سلام خدمت دوستان
میخوام بدونم چطوری میشه پارامتر های خروجی
را از روال ذخیره شده را بازیابی کرد.در ado dot net 2.0 و از طریق شیی sqldatasource
در ضمن من sqldatasource از طریق کد ایجاد و استفاده کردم.

مهدی کرامتی
پنج شنبه 11 خرداد 1385, 10:57 صبح
کافیه یک پارامتر از نوع out در SP ات تعریف کنی. بقیه کار خیلی سخت نیست!

.مهدی فهمیده غلامی.
پنج شنبه 11 خرداد 1385, 11:00 صبح
خوشبختانه این مسله حل شد:

public static int InsertToKeywords(string strKeyword)
{
//روش روال ذخیره شده
SqlDs.InsertCommandType = SqlDataSourceCommandType.StoredProcedure;

//نام روال ذخیره شده
SqlDs.InsertCommand = "InsertKeyword";

//تعیین پارامتر های ورودی روال ذخیره شده
SqlDs.InsertParameters.Clear();
SqlDs.InsertParameters.Add("Keyword", TypeCode.String, strKeyword);


//ایجاد یک پارامتر خروجی و ریختن نتیجه اجرای
//روال ذخیره شده در پارامتر
//intKeywordID
Parameter KeywordID = new Parameter("KeywordID", TypeCode.Int32);
KeywordID.Direction = ParameterDirection.Output;

SqlDs.InsertParameters.Add(KeywordID);

//تعریف رخداد مربوط به
//Insert
SqlDs.Inserted += new SqlDataSourceStatusEventHandler(OnInsertedHandler) ;


SqlDs.Insert();

//مقدار
//intKeywordID
//برگشت داده میشود
return intKeywordID;
}
}

private static void OnInsertedHandler(object sender, SqlDataSourceStatusEventArgs e)
{
DbCommand cmd = e.Command;
intKeywordID = Convert.ToInt32(cmd.Parameters["@KeywordID"].Value.ToString());
}