و عليكم السلام و رحمة الله و بركاته
اخي الكريم,
الفكرة لديك تعتمد على تعشيش الاستعلامات
و كجواب نظري انت تريد الوصول من الاكبر الى الاصغر (من الاعم و الاشمل الى المختصر)
اما ان تعتمد على تعشيش الاستعلامات في القاعدة و تستقبل المخرجات في البرنامج عن طريق تمرير البارمترات المناسبة
و اذا كنت تتعامل مع SqlServer استفد من الاجراءات المخزنة في هذا الموضوع.
او يمكنك تخصيص العمل مع مكاتب Linq بالتوازي مع تعبيرات Lambda و بالتالي يصبح الامر اسهل و اقوى , لان القيم الراجعة من دوال لامدا هي مصفوفات و بالتالي يمكنك التعمق الى ابعد حد في الاستعلامات و الحصول على اي نتيجة تحبذها
وان كنت ستعتمد على اطار العمل (اقصد Ado التقليدي) فيتوجب عليك العمل , كاشارة اولى
اعمل على DataTable.select و استخدم FilterExpression يتاسب مع احتياجاتك بالتوازي مع ربطها بدوال ديناميكة حتى لا يصبح لديك الكود طويل جداً (مع ان هذه الفكرة ستغلبك كثيراً ولا احبذها)
كمثال على قوة Linq
اخي الكريم,
الفكرة لديك تعتمد على تعشيش الاستعلامات
و كجواب نظري انت تريد الوصول من الاكبر الى الاصغر (من الاعم و الاشمل الى المختصر)
اما ان تعتمد على تعشيش الاستعلامات في القاعدة و تستقبل المخرجات في البرنامج عن طريق تمرير البارمترات المناسبة
و اذا كنت تتعامل مع 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
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال


