<asp:AccessDataSource> المعرف = "MySourcName" رونات = "الخادم" ملف البيانات = "MyMDBName.mdb" SelectCommand = "SELECT MyField1، MyField2 FROM MyTable"> </asp:AccessDataSource> |
<أتش تي أم أل> <الرأس> <العنوان>TIO ch02-1 عرض بيانات MDB</العنوان> <الرأس> <الجسم> <h3>ch02 TIO 2 عرض الاتصال بمصدر MDB </h3> <الجسم> </أتش تي أم أل> |
<%@ لغة الصفحة = "VB" %> <أتش تي أم أل> <head><title>ch02 TIO 2 عرض بيانات MDB</title></head> <الجسم> <h3>ch02 TIO 2 عرض الاتصال بمصدر MDB </h3> <نموذج تشغيل = "الخادم"> <asp:accessdatasource id = "NorthwindProductsAccDataSource" runat = "الخادم" Selectcommand="اختر * من المنتجات" datafile = "~/App_Data/Northwind.mdb"> </asp:accessdatasource> <asp:gridview id = "NorthwindProductsGridView" runat = "الخادم" datasourceid = "NorthwindProductsAccDataSource"> </asp:عرض الشبكة> </النموذج></الجسم></html> |
<asp:accessdatasource id = "NorthwindProductsAccDataSource" runat = "الخادم" حددcommand="Selcet * من [المبيعات حسب الفئة] " ملف البيانات = "~/App_Data/Northwind.mdb"> </asp:accessdatasource> |
(14) افتح المتصفح واعرض الصفحة.
ملاحظة المثال رقم 2 - الاتصال بـ MDB وعرض البيانات باستخدام GridView
لديك عنصري تحكم على الصفحة. الأول، AccessDataSource، ينفذ جميع أعمال الاتصال بكائنات ADO.NET التي تتصل بمحرك JET الذي يتفاعل مع ملف MDB. والثاني هو GridView، والذي يستخدم للحصول على البيانات وتحويل تنسيقها إلى تنسيق HTML يمكن عرضه على الصفحة. الرجاء ملاحظة أنه من المهم جدًا إعطاء كل عنصر تحكم اسمًا ذا معنى (ID). يجب عليك بعد ذلك التأكد من أن عنصر التحكم المرتبط بالبيانات (GridView) يستخدم خاصية DataSourceID الخاصة به للإشارة إلى معرف AccessDataSource من أجل استخدام AccessDataSource كمصدر بياناته.
إن عرض البيانات من استعلام ليس بالأمر الصعب للغاية؛ ففي Access يمكنك استخدام أسماء الاستعلامات بدلاً من أسماء الجداول. هناك نوعان من التعليمات هنا. أولاً، إذا كانت هناك مسافات في اسم جدول أو استعلام، فيجب وضع الاسم بالكامل بين قوسين مربعين. ثانيًا، الاستعلامات التي تتطلب إدخال المستخدم (على سبيل المثال، "المبيعات في سنة معينة" تتطلب معرفة أي سنة) تتضمن تقنيات خارج نطاق هذا الكتاب.
بعد الانتهاء من الخطوات السابقة، يمكنك مشاهدة البيانات التي تم الحصول عليها من عنصر التحكم AccessDataSource المعروضة على الصفحة. ستغطي الفصول اللاحقة GridView بالتفصيل، لكن هذا الفصل سيستمر في التركيز على عناصر التحكم في مصدر البيانات.
حدد المتغيرات في البيانات
عند إنشاء مصدر بيانات في VWD، سيطلب منك المعالج تحديد الأعمدة التي يجب عرضها أو إنشاء عبارة SQL مخصصة. في "جربها بعيدًا" السابقة، قمت ببساطة بتحديد بضعة أعمدة. يمكن تحديد عبارات SQL الأكثر تعقيدًا بعدة طرق مختلفة:
● استخدم مربعات الحوار التفاعلية
● أدخل عبارات SQL مخصصة في معالج AccessDataSource (يتم استدعاؤها بواسطة مهمة تكوين مصدر البيانات الملائمة في عنصر التحكم)
● أدخل البيانات في شبكة الممتلكات
● أدخل البيانات مباشرةً في علامة عرض المصدر
يعد تحديد الأعمدة في معالج Access DataSource أسلوبًا مفضلاً للاستعلامات البسيطة التي ترجع عمودًا واحدًا أو أكثر من جدول منفصل لأنه يقلل من الأخطاء المطبعية وأخطاء بناء الجملة (انظر الشكل 2-3). في هذا المعالج، يمكنك تحديد اسم الجدول أو الاستعلام من القائمة المنسدلة الاسم. يمكنك بعد ذلك تحديد الأعمدة المطلوبة في الجدول أو الاستعلام عن طريق تحديد كافة الأعمدة (*) أو أي مجموعة من الأعمدة. إذا نقرت فوق الزر ترتيب حسب، فيمكنك الفرز حسب أي عمود في مصدر البيانات. إذا كان هناك قيد في العمود الأول، فسيتم استخدام الحقل المحدد في "ثم حسب". أثناء تحديد الخيارات من المعالج، لاحظ أن بناء جملة SQL الفعلي لـ SelectCommand يتم عرضه أيضًا في مربع نص للقراءة فقط.
الشكل 2-3
يمكنك استخدام زر WHERE في المعالج لإنشاء عبارة SQL مع المعلمات. سيتم تقديم هذا الجزء في الفصل التاسع. سنقوم بتخطي هذا الاختيار في الوقت الحالي، ولكن من المهم قبل النشر أن تستخدم هذه المعلمات التي سيتم مناقشتها لاحقًا في هذا الكتاب. في الموقع الذي تم نشره، تجنب توصيل إدخال المستخدم مباشرة بعبارات SQL. سيؤدي تجاهل مشكلات المعلمات إلى تعريض موقعك لهجمات حقن SQL. تستخدم تقنية الهجوم هذه أحرفًا خاطئة من إدخال المستخدم لإبطال عبارة SQL الأصلية ثم استبدالها ببيان مدمر. يمكنك استخدام مجموعات المعلمات لإرسال مدخلات المستخدم إلى مجموعات معلمات ADO.NET، والتي يمكنها استخدام وظائف المجموعات لتقليل مشكلات حقن SQL.
على الرغم من أن معالج تكوين مصدر البيانات يحتوي على العديد من الخيارات للمساعدة في إنشاء عبارات SQL بسرعة، إلا أنك في بعض الأحيان لا تزال بحاجة إلى إدخال (أو تعديل) عبارة SQL مباشرة في SelectCommand المميزة. يسمح معالج AccessDataSource بهذه العمليات. في صفحة المعالج الخاصة بتحديد الجداول والاستعلامات والأعمدة، يمكنك تحديد زر الاختيار "تحديد عبارة SQL مخصصة أو إجراء مخزن". بعد تحديد هذا الخيار في صفحة المعالج، انقر فوق الزر التالي للدخول إلى صفحة أخرى حيث يمكنك إدخال البيانات المخصصة مباشرة في منطقة النص. يمكنك أيضًا استخدام Visual Studio QueryBuilder لإنشاء بيانات مخصصة بشكل مرئي، باستخدام أدوات مشابهة جدًا لـ Access QueryBuilder.
إذا كنت لا تريد استخدام المعالج، يمكنك اختيار إدخال عبارة SQL مخصصة في شبكة خصائص عنصر التحكم AccessDataSource، أو يمكنك التبديل إلى طريقة عرض المصدر وإدخال العبارة في خاصية SelectCommand لعلامة التحكم AccessDataSource.
هناك العديد من الكتب حول SQL (من نفس النوع هذا الكتاب Beginning SQL Programming ، ISBN 1-861001-80-0)، ويقدم هذا الكتاب مقدمة مختصرة في الملحق. إذا كنت تخطط لتعلم بناء جملة SQL، فيمكنك البدء بتعلم أوامر إرجاع جزء من السجل (TOP وDISTINCT)، وبناء جملة إعادة تسمية الحقل (AS)، وتقنية إرجاع الحقول من جدولين مرتبطين (JOIN) . ستستكشف التمارين التالية بعض المتغيرات في عبارات SQL.
حاول رقم 3 - تغيير عبارة التحديد في AccessDataSource في هذا التمرين، ستعرض أعمدة وسجلات معينة من جدول المنتجات الخاص بشركة Northwind. سيتم أيضًا إنشاء صفحة لعرض البيانات التي تم الحصول عليها من الاستعلام. يرجى ملاحظة أنه في هذا التمرين، تكون قواعد التحديد موجودة بالفعل في الكود المصدري. حاليا، لا يوجد أي إدخال المستخدم كخيار.
(1) قم بإنشاء ملف باسم ch02_TIO_3_AlternateSelect-Commands.aspx في C:WebsitesBegAspNet2Dbch02.
(2) أضف عنصر تحكم AccessDataSource باستخدام Northwind كمعرف وقم بتعيين MDB على App_DataNorthwind.mdb. في سلسلة من مربعات الحوار، قم بإعداد الأمر تحديد لاسترداد كافة الحقول من جدول المنتجات ("الاسم"=المنتجات). ألق نظرة على عرض المصدر ولاحظ البيان الذي قمت بإنشائه، كما هو موضح أدناه:
اختر * من المنتجات |
<%@ لغة الصفحة = "VB" %> <أتش تي أم أل> <رئيس تشغيل = "الخادم"> <العنوان>ch02 TIO 3 تحديد Conimands البديل</العنوان> </الرأس> <الجسم> <h3>ch02 TIO 3 بديل حدد Coinmands</h3> <نموذج تشغيل = "الخادم"> <asp:accessdatasource id = "NorthwindAccDataSource" runat = "الخادم" حدد الأمر = "حدد * من المنتجات" ملف البيانات = " ~/App_Data/Northwind.mdb" > </asp:accessdatasource> <asp:gridview id = "GridViewl" runat = "الخادم" datasourceid = "NorthwindAccDataSource"> </asp:عرض الشبكة> </النموذج> </ الجسم> </أتش تي أم أل> |
اختر * من [المنتجات] حيث (CategroyID=3) |
<asp:accessdatasource id = "NorthwindAccDataSource" runat = "الخادم" Selectcommand="SELECT * FROM [المنتجات] حيث (CategoryID = 3) " ملف البيانات = "~App_Data/Northwind.mdb"> </asp:accessdatasource> |
اختر * من المنتجات حيث معرف المنتج = 12 اختر * من المنتجات حيث اسم المنتج = "صلصة التوت البري نورثوودز" اختر * من المنتجات حيث معرف المنتج <11 اختر * من المنتجات حيث معرف المنتج <11 قم بالترتيب حسب اسم المنتج تصاعديًا اختر * من المنتجات حيث معرف المورد = 6 أو معرف المورد = 8 اختر * من المنتجات حيث معرف المورد = 24 وسعر الوحدة > 10 |
المتغيرات في موقع ملف MDB
يتم تخزين ملفات MDB في مواقع فعلية مختلفة على القرص الصلب: نفس المجلد مثل صفحة الويب، أو مجلد فرعي أسفل صفحة الويب، أو مجلدات أخرى على الجهاز، وما إلى ذلك. في Visual Web Developer، يمكن استعراض هذه الملفات بشكل متكرر في المصمم، وتم إدخال المسار الصحيح لملف MDB. ومع ذلك، إذا كنت تخطط لإدخال الرمز الخاص بك، فسوف تحتاج إلى اتباع بناء الجملة الموضح في هذا القسم.
تحتوي الخاصية DataFile الخاصة بعنصر التحكم AccessDataSource على مسار صفحة يمكن أن يكون مؤهلاً بالكامل (على سبيل المثال، البدء بحرف محرك أقراص) أو محددًا بالنسبة إلى موقع الصفحة التي تحتوي على AccessDataSource. يمكن أن تكون المسارات أيضًا مرتبطة بالتطبيق، أي استخدام بناء جملة URL للإشارة إلى المسار. يستبدل بناء الجملة هذا الرمز (~) بالدليل الجذر للتطبيق، على سبيل المثال: ~App_Dataproduces.mdb. يؤدي استخدام المسارات المرتبطة بالتطبيقات إلى تسهيل نقل الصفحات من موقع إلى آخر دون قطع المراجع إلى قاعدة البيانات، لذا يوصى باستخدام المسارات المرتبطة بالتطبيقات كلما أمكن ذلك.
أولاً، دعونا نلقي نظرة على بناء جملة المسار المؤهل بالكامل، والذي يحتوي على المسار بأكمله إلى ملف MDB، بدءًا من جذر محرك الكمبيوتر حيث يوجد الملف:
<asp: مصدر البيانات . datafile= "C:WebSitesWebApplicationApp_DataMyMdb.mdb"> |
<asp:accessdatasource |
<asp:accessdatasource |
<asp:accessdatasource |
<asp:accessdatasource |