28-05-17, 03:09 AM
(28-05-17, 02:57 AM)ابو ليلى كتب : و عليكم السلام و رحمة الله و بركاته
اخي الكريم,
الفكرة لديك تعتمد على تعشيش الاستعلامات
و كجواب نظري انت تريد الوصول من الاكبر الى الاصغر (من الاعم و الاشمل الى المختصر)
اما ان تعتمد على تعشيش الاستعلامات في القاعدة و تستقبل المخرجات في البرنامج عن طريق تمرير البارمترات المناسبة
و اذا كنت تتعامل مع SqlServer استفد من الاجراءات المخزنة في هذا الموضوع.
او يمكنك تخصيص العمل مع مكاتب Linq بالتوازي مع تعبيرات Lambda و بالتالي يصبح الامر اسهل و اقوى , لان القيم الراجعة من دوال لامدا هي مصفوفات و بالتالي يمكنك التعمق الى ابعد حد في الاستعلامات و الحصول على اي نتيجة تحبذها
وان كنت ستعتمد على اطار العمل (اقصد Ado التقليدي) فيتوجب عليك العمل , كاشارة اولى
اعمل على DataTable.select و استخدم FilterExpression يتاسب مع احتياجاتك بالتوازي مع ربطها بدوال ديناميكة حتى لا يصبح لديك الكود طويل جداً (مع ان هذه الفكرة ستغلبك كثيراً ولا احبذها)
كمثال على قوة Linq
PHP كود :
Using svcContext As New ServiceContext(_serviceProxy)
Dim query_multiselect =
svcContext.IncidentSet _
.Where(Function(i) Not i.IncidentId.Value.Equals(_incidentId1)) _
.Select(Function(i) i.incident_customer_accounts) _
.Where(Function(a) Not a.AccountId.Value.Equals(_accountId2)) _
.Select(Function(a) a.account_primary_contact) _
.OrderBy(Function(c) c.FirstName).Select(Function(c) c.ContactId)
For Each c In query_multiselect
Console.WriteLine(c.GetValueOrDefault())
Next c
End Using
السلام عليكم اخي الحبيب
شكرا علي الرد والمساعدة
بس انا مازلت مبتدا وكلام حضرتك مش واضح اوي بالنسبة لي

فكيف اعكس هذا الكلام علي المشروع تبعي
فيا ليت لو وضعته في المرفقات
مع الشكر
و كل عام وانتم بخير

