PDA

View Full Version : ساخت stored procedure متغیر



SEPIDEYESHAB
یک شنبه 06 بهمن 1392, 10:14 صبح
با سلام من برنامه ای نوشتم که کوئری select در اون در زمان اجرا و به درخواست کاربر ساخته میشه و خیلی متغیره !

از طرفی چون تعداد رکورد بالا هستش زمان زیادی برای لود کردنش طول میکشه !

بعد از کمی جستجو فهمیدم که باید از stored procedure استفاده کنم !

لطفا بگید چجوری میتونم کوئری ساخته شده خودم رو به سمت sql بفرستم !

sorena2000
یک شنبه 06 بهمن 1392, 22:40 عصر
شما stored procedure خودتون رو نوشتید یا نه ؟؟؟
برای ساخت stored procedure به این روش انجام بدید .



CREATE PROCEDURE nameprocedure
معرفی متغیرها
@codmeli NVARCHAR(10)

AS

BEGIN
دستور های sql
SELECT tp.[data], tp.etebar, tp.shomare ,t.name, t.family, t.codmeli, t.shsh,
t.databirth, t.sadere, t.shgavahi, t.paye, t.mgavahiname, t.mkhodro,
t.model, t.rang, t.radif, t.shentezami, t.mfaliat ,t.father
FROM TbPrint tp INNER JOIN Tbranandeh t ON t.id = tp.id WHERE t.codmeli =@codmeli
END



برای استفاده از اون پروسیجر در برنامت هم مثل تابع زیر می تونی انجام بدی




SqlCommand command = new SqlCommand("نام استور پروسیجر", connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@codmeli ", SqlDbType.Int).Value = txtcodmli.Text.Trim();

connection.Open();
command.ExecuteNonQuery();
connection.Close();

mousa1992
یک شنبه 06 بهمن 1392, 23:53 عصر
صرفا برا دستور select فرقی نمیکنه از stored procedure استفاده کنی و یا رشته رو بفرستی به Sql (از نظر سرعت لود ) وقتی از stored procedure استفاده میکنید فقط حجم داده کمتری رو به sql میفرستید والا دستور که همون دستوره
پیشنهاد می کنم که اطلاعاتی که میخواین نمایش بدین رو صحفه بندی کنید ؛ چه کاربردی میتونه داشته باشه select کردن این همه اطلاعات که لودشون طول میکشه ؟ ( نمونه هایی از صفحه بندی با linq و ado توی همین سایت هست )

SEPIDEYESHAB
دوشنبه 07 بهمن 1392, 09:57 صبح
آخه من شنیدم با stored procedure حجم کار روی موتور خود sql میفته و سرعتش خیلی بیشتر از C# میشه !
آیا این حرف درسته ؟!!

اگه نه ، پس چرا وقتی تو خود sql رکورد ها رو فیلتر میکنم چند برابر اون تعداد رو تو 1 ثانیه برام لود میکنه ؟!!!

fakhravari
سه شنبه 08 بهمن 1392, 15:05 عصر
تعداد بالا از صفحه بندی استفاده کن.