PDA

View Full Version : نحوه جستجوی چند فیلد با استفاده از StoredProcedure



strongxxx
سه شنبه 23 دی 1393, 11:50 صبح
با سلام
دو سوال در مورد جستجو :
اول اینکه برای استفاده از StoredProcedure جهت جستجو در دیتابیس sqlserver 2008 به چه شکلی باید عمل کرد
دوم برای اعمال جستجو از طریق چند تکست باکس (هر یک به فیلدی از دیتابیس اشاره می کنند) به مانند شکل پیوست به چه شکلی باید عمل کرد (با استفاده از StoredProcedure )

SabaSabouhi
سه شنبه 23 دی 1393, 12:09 عصر
سلام
من فرض بر این می‌گیرم مشکلی تو جمع‌آوری مقادیر و فرستادنشون به SP مشکلی نداشته باشین.
و گمان می‌کنم مشکل شما اینه که چطوری به صورت مشروط خود SP رو بنویسید که اگه مثلاً نام موسسه وارد
نشده باشه، کاری نکنه و در غیر این صورت شرط Where مرتبط اعمال بشه.
بهترین کار اینه که توی SP یه رشته حرفی بگیرید و با توجه به متغیرها
اون رو پر کنید.
بعد هم با sp_executesql اون رو اجرا کنید.



DECLARE @SQLString nvarchar(1000)


SET @SQLString = N'SELECT Id, Name'
+ N' FROM MyTable'
+ N' WHERE Id > 0'
IF @Para1 <> ''
SET @SQLString = @SQLString + N' AND Field1 = ''' + @Para1 + ''''


EXECUTE sp_executesql @SQLString


امیدوارم که مشکلتون رو حل کنه.

صبا صبوحی

strongxxx
سه شنبه 23 دی 1393, 13:29 عصر
ممنون از لطف شما
حالا فرض کنید اطلاعات رو از بانک واکشی کردیم و داخل یک دیتاگرید ویو ریختیم
برای فیلتر کردن اطلاعات مطابق شکل پست شماره یک چه کاری باید انجام داد(به عبارت دیگر در هر یک از تکست باکس ها که رشته ای وارد کنیم اطلاعات گرید ویو بر اساس اونها فیلتر بشه)

SabaSabouhi
سه شنبه 23 دی 1393, 14:58 عصر
سلام
مهم نیست که اطلاعات رو کجا نمایش می‌دین، مهم DataSource هست که می‌تونه DataTable یا List یا ObservebleCollection باشه.
در هر صورت شما باید DataSource رو فیلتر کنی و این کار رو به کنترل نمایشی واگذار نکنی. ( و گرنه در حجم بالای داده‌ها دچار افت سرعت می‌شی )
من از EF استفاده می‌کنم و برای فیلترینگ از LinQ و Lambda استفاده می‌کنم. تو پست http://barnamenevis.org/showthread.php?302405-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D9%86%D9%88%D8%B9-%D8%B9%D8%A8%D8%A7%D8%B1%D8%AA-%D9%86%D9%88%D8%B4%D8%AA%D9%87-%D8%B4%D8%AF%D9%87-%D8%A8%D8%A7-linq&p=2159792&viewfull=1#post2159792 توضیح بیشتر دادم، به اون پست مراجعه کنید.

صبا صبوحی