View Full Version : سوال: بدست آوردن مقدار برگشتی storedprocedure
Program.net
پنج شنبه 29 اردیبهشت 1390, 20:04 عصر
سلام
من ازین کد واسه بدست آوردن درصد استفاده می کنم
select
Distinct
(
SELECT 100*COUNT(*) AS kol
FROM
tbl_VisitDetail AS vd LEFT OUTER JOIN
tbl_Visit
AS v ON vd.Visit_Id = v.Visit_Id
WHERE
(v.Part_Id =@PartId) AND (vd.Zaef=1))/
case
when (SELECT COUNT(*) AS kol
FROM
tbl_VisitDetail AS vd LEFT OUTER JOIN
tbl_Visit
AS v ON vd.Visit_Id = v.Visit_Id
WHERE
(v.Part_Id =@PartId))=0 then 1
when (SELECT COUNT(*) AS kol
FROM
tbl_VisitDetail AS vd LEFT OUTER JOIN
tbl_Visit
AS v ON vd.Visit_Id = v.Visit_Id
WHERE
(v.Part_Id = @PartId))<>0 then (SELECT COUNT(*) AS kol
FROM
tbl_VisitDetail AS vd LEFT OUTER JOIN
tbl_Visit
AS v ON vd.Visit_Id = v.Visit_Id
WHERE
(v.Part_Id = @PartId)) end
و میخوام مقداری رو که دست میاره رو تویه یک متغیر بریزم اینجوری:
string zaef = dc.SP_Perc_Z(System.Convert.ToInt32(cbplace.Select edValue)).ReturnValue.ToString();
ولی این کد مقدار 0 یا null رو توی متغیر میریزه . چجوری مقدار بدست اومده ازین storedprocedure رو بدست بیارم در ضمن وقتی به دیتا گرید بایندش میکنم مقدار درست رو نشون میده ولی تویه متغیر نه ؟!؟!؟!؟!؟!؟
Program.net
پنج شنبه 29 اردیبهشت 1390, 21:01 عصر
کسی نظری نداره؟
morteza271
پنج شنبه 29 اردیبهشت 1390, 21:48 عصر
شما کد زیر رو کجا نوشتین که نتیجه اشتباه میده:
string zaef = dc.SP_Perc_Z(System.Convert.ToInt32(cbplace.Select edValue)).ReturnValue.ToStr ing();
Program.net
پنج شنبه 29 اردیبهشت 1390, 22:01 عصر
توی رویداد کلیک button نوشتم وقتی که combox select شده .
storprocedur من درصد رو محاصبه میکنه که یک عدد هست ولی نمیتونم تویه یک متغیر نشونش بدم
morteza271
پنج شنبه 29 اردیبهشت 1390, 22:12 عصر
میشه کد کاملتون رو بذارید؟
من متوجه نمیشم چطوری SP رو اجرا کردین!!
من همیشه از این روش استفاده میکنم :
SqlConnection con = new SqlConnection(Properties.Settings.Default.MahakFea tureConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "SaveNewTest";
SqlDataAdapter da = new SqlDataAdapter(cmd);
cmd.Parameters.AddWithValue("@FinalVersion", txtFinalVersion.Text);
cmd.Parameters.AddWithValue("@TestType", cboTestType.Text);
cmd.Parameters.AddWithValue("@TesterCode", cboTester.SelectedValue).DbType = DbType.Currency;
cmd.Parameters.AddWithValue("@ResolverCode", cboResolver.SelectedValue).DbType = DbType.Currency;
cmd.Parameters.AddWithValue("@BeginDate", date);
cmd.Parameters.AddWithValue("@EndDate", "");
cmd.Parameters.AddWithValue("@Explain", txtExplain.Text);
DataTable dt = new DataTable();
da.Fill(dt);
lblTestID.Text = dt.Rows[0][0].ToString();
Program.net
پنج شنبه 29 اردیبهشت 1390, 22:19 عصر
string zaef = dc.SP_Perc_Z(System.Convert.ToInt32(cbplace.Select edValue)).ReturnValue.ToString();
من از linq استفاده کردم
اینجوری sp رئ صدا زدم : dc.SP_Perc_Z(int ..);
SP_Perc_Z استور پروسیجر هست dc هم dataclassdatacontex
morteza271
پنج شنبه 29 اردیبهشت 1390, 22:44 عصر
شرمنده من اصلا از linq چیزی نمیدونم!!نمیتونم کمکتون کنم!!!
راستش من خیلی دوست دارم linq یاد بگیرم شما pdf به فارسی ندارین که بتونم خوب ازش استفاده کنم.
اگه دارید لطف کنید برام میل کنید:
mr_toroski@yahoo.com
ممنون
Program.net
پنج شنبه 29 اردیبهشت 1390, 22:52 عصر
در هر صورت ممنونم ولی سوال من اطلا به linq ربطی نداره :ناراحت:
من فقط می خوام بدونم چطوری نتجه storprodecure رو تویه متغیر بریزم تو مثال شما به جای:
cmd.CommandType = CommandType.StoredProcedure;
بنویسم مثلا :
int x=dc.storeprocedure
حالا اینو ولش کن یه سوال دیکه چجوری storeprocedure با مقدار برگشتی تعریف کنم و توی کد C# ازش استفاده کنم؟
morteza271
پنج شنبه 29 اردیبهشت 1390, 23:58 عصر
خوب توی استور پروسیجورتون کوئری که مینویسید اگه select باشه خروجی داره دیگه.
و راحت میتونید خروجی رو بریزید توی یه Datatable و آنها رو نمایش بدین.
بابت فایل آموزشی linq هم ممنونم.لطف کردین.
Program.net
جمعه 30 اردیبهشت 1390, 10:56 صبح
کسی میتونه به من کمک کنه چجوری نتیجه storeprocedure رو تو متغییر بریزم؟
Program.net
شنبه 31 اردیبهشت 1390, 13:12 عصر
لطفا اگه کسی نظری داره کمک کنه من اینترنتو زیرو رو کردم هیچی نبود :گریه:
javad_r_85
شنبه 31 اردیبهشت 1390, 13:30 عصر
public object ExecuteScaler(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
{
cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = commandType;
cmd.CommandText = commandText;
cmd.Parameters.AddRange(commandParameters);
Connect();
object retVal = cmd.ExecuteScalar();
Desconnect();
return retVal;
}
Int retVal = Convert.ToInt32(ExecuteScaler(System.Data.CommandT ype.StoredProcedure, "GetUserCountByUsernamePass", new SqlParameter[] {
new SqlParameter("@user_username ",userName),
new SqlParameter("@user_password ",pass));
Store Procedure is :
create Procedure [dbo].[GetUserCountByUsernamePass]
@user_username nvarchar(150),
@user_password nvarchar(150)
as
SELECT Count(*) FROM users WHERE User_UserName=@user_username and User_Password=@user_password;
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.