صفحة المكتبة الرئيسية

 

 

سجل الزوار   :   من نحن   :   اتصل بنا

     
 
  العمل مع ال Webmatrix
  القسم : ASP.NET
  التصنيف : فئة الدروس.
  عدد المشاهدات : 17
  التقييم : -
  العمل مع ال Webmatrix
 

هذا درس يعتبر عمليا نوعا ما حيث سأكتب مثالين مستخدما ما درسناه في مواضيع ال ADO.NET و هي ال DataReader و ال DataSet بعد أن أشرح نبذة عن برنامج MS Web Matrix .

هذا البرنامج MS Web Matrix هو إصدارة من شركة Microsoft للعمل كمحرر لتقنية الدوت نت و يجب من أجل تثبيته قبلا تثبيت ال Dot Net Framework الموجودة ضمن أدوات ال SDK التي تقدمها ميكروسوفت للمبرمجين من خلال موقعها على الشبكة أو إسطوانات مدمجة و يمكن الحصول على محرر ال MS Webmatrix من الموقع الرسمي لشركة ميكروسوفت http://www.microsoft.com/و هذه صورة المحرر :






عند تشغيل المحرر سوف تظهر لنا شاشة كالتالي :





يوجد بالأسفل مربع نص مكتوب بجانبه Location. سنقوم بتغيير المسار و لنجعله c:\dotnet و من ثم نغير اسم الملف بجانب ال File Name إلى Default.aspx أو أي إسم نريده و لننتبه أن الإمتداد للملف يجب أن يكون aspx ثم نختار اللغة التي سنبرمج بها وأنا هنا إخترت ال #C.


سوف تظهر لنا واجهة للعمل فارغة و بها شريط بالأسفل كالموضح بالصورة هنا




بالعادة أنا أختار All كي تظهر لي كل شيء مكتوب سواء HTML أو الأكواد المكتوبة برمجيا. سنختار معا الإختيار All و ستظهر لنا شاشة كهذه تماما :





و نرى فيها باللون الأصفر بالأعلى وجود موجه Directive يحدد اللغة التي سنكتب بها و هنا مكتوبة #C و بالأسفل سنرى وسمين Tags رئيسيين واحد لكتابة الأكواد Scripts و الثاني لعناصر ال HTML.


سوف نذهب للوسم Script و نكتب به كودا بسيطا للغاية يظهر مسار الصفحة التي نحن بها و التي أسميتها أنا delete.aspx كما هو بالشكل التالي :





ليس مهما أن تكتب الكود و لكن كي أريكم كيف تصبح الشاشة عند كتابة الأكواد.
بعد ذلك نضغط على F5 كي يتم تنفيذ الكود و ستظهر لنا شاشة صغيرة تسألنا عن رقم المنفذ Port في الجهاز و الذي من خلاله سوف يتم تنفيذ الكود و عرضه . اتركها كما هي 8080 و إضغط على موافق .

ستفتح صفحة متصفح جديدة و ستظهر النتيجة الأخيرة على المتصف كالتالي :





الان سنبدأ العمل بأيدينا حيث سنتوجه للقرص الصلب C و نقوم بعمل مجلد اسمه dotnet و نضع به قاعدة بيانات باسم db من نوع أكسيس بها جدول واحد إسمه Categories و به 3 حقول كالتالي :

1.id : و هو المفتاح الوحيد PrimaryKey من نوع AutoNumber
2.Category : من نوع Text
3.Active : من نوع Boolean و هي بالأكسيس Yes/No

نقوم بكتابة عدد من الأقسام Categories في الجدول ثم نحفظ البيانات و نغلق ال MS Access و نتوجه للعمل برمجيا مع ال MS WebMatrix.

سوف نقوم بتحديد المجلد الذي سنعمل به عند فتح المحرر و قلنا سيكون dotnet الموجود على القرص الصلب C و نكون صفحة جديدة بإسم default.aspx .

سنستفيد مما تعلمناه في الدروس السابقة في قسم ال ADO.NET و سنكتب هذا المثال عن طريق ال DataSet و يمكنك مراجعة الدرس من أجل المزيد و ها هو المثال :



<%@ Page Language="C#" Debug="True" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">

void Page_Load()
{
string prov="Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + Server.MapPath("db.mdb");
string SQL="SELECT * FROM Categories where active=True";
OleDbConnection cn = new OleDbConnection(prov);
OleDbDataAdapter da = new OleDbDataAdapter(SQL,cn);
DataSet ds = new DataSet();


cn.Open();

da.Fill(ds,"categories");
int ttlRecords = ds.Tables["categories"].Rows.Count;

Response.Write("<b>The as4web Library has : ( " + ttlRecords.ToString() + " ) Categories.<BR></b>");

for(int i=0;i<ttlRecords;i++)
{
object catName = ds.Tables["categories"].Rows["category"];
Response.Write(i+1 + "<i>- Category :</i> <b>" + catName + "</b><BR>");
}
cn.Close();

Response.Write("<a href=./datareader.aspx>DataReader Example</a>");

}

</script>
<html dir="rtl">
<head>
</head>
<body>
<form runat="server">
<!-- Insert content here -->
</form>
</body>
</html> 





كما نرى قمنا بإدراج NameSpaces من أجل التعامل مع البيانات و استخدمنا System.Data لأنها تحوي على ال DataSet و استخدمنا ال DataAdapter مثلا والذي يستوجب تضمين system.Data.OleDb حيث سنتعامل مع قاعدة بيانات أكسيس.
في المثال التالي توضيح للموجهات :


<%@ Page Language="C#" Debug="True" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %> 



نلاحظ أنه في أول سطر قمت بإضافة Debug و جعلت قيمتها True و الهدف من ذلك الحصول على نوعية الخطأ عند حدوثه في مرحلة التنفيذ Compilation .

بعد ذلك قمت بكتابة الحدث PageLoad كالتالي :


void Page_Load()
{
} 



و بدونه لن تعمل الصفحة من حيث ترجمة الأكواد لو كتبناها مباشرة.


بعد ذلك كتبنا الكود الخاص بالإتصال Connection وال DataAdapter و ال dataset كما هو موضح هنا :



string prov="Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + Server.MapPath("db.mdb");
string SQL="SELECT * FROM Categories where active=True";
OleDbConnection cn = new OleDbConnection(prov);
OleDbDataAdapter da = new OleDbDataAdapter(SQL,cn);
DataSet ds = new DataSet(); 



نرى أننا عرفنا متغير نصي String يحمل الإسم prov ليحمل بيانات المزود للبيانات و هي قاعدة بيانات أكسيس ذات الإسم db.mdb ثم عرفنا متغير نصي أخر SQL به جملة الإستعلام الخاصة بالتنفيذ بعدها عرفنا كائن الإتصال و مررنا له بيانات المزود ثم أنشأنا DataAdapter و حددنا له جملة الإستعلام و الإتصال و بعدها أنشأنا ال DataSet لتكون جاهزة للتعبئة بالبيانات.

قلنا يلزم لتعبئة ال DataSet إستدعاء الطريقة Fill الخاصة بال DataAdapter و هذا ما فعلناه هنا :


cn.Open();

da.Fill(ds,"categories");
int ttlRecords = ds.Tables["categories"].Rows.Count;

Response.Write("<b>The as4web Library has : ( " + ttlRecords.ToString() + " ) Categories.<BR></b>");

for(int i=0;i<ttlRecords;i++)
{
object catName = ds.Tables["categories"].Rows["category"];
Response.Write(i+1 + "<i>- Category :</i> <b>" + catName + "</b><BR>");
}
cn.Close();



حيث قمنا بتعبئتها بجدول أسميناه categories.
أيضا قمنا بتعريف متغير رقمي ttlRecords و أسندنا له عدد السجلات الموجودة في الجدول كالتالي :

int ttlRecords = ds.Tables["categories"].Rows.Count;


و في قاعدة البيانات المرفقة سوف يعطينا الناتج 5 و من أجل التأكد من ذلك أضفت الجملة التالية للكود :


Response.Write("<b>The as4web Library has : ( " + ttlRecords.ToString() + " ) Categories.<BR></b>");

//The result :
The as4web Library has (5) Categories. 




ثم قمت بعمل دوارة Loop من نوع For Loop تدور على حسب السجلات الموجودة في الجدول و في كل مرة تعرض إسم الحقل الخاص بإسم القسم Category كما هو موضح هنا :



for(int i=0;i<ttlRecords;i++)
{
object catName = ds.Tables["categories"].Rows["category"];
Response.Write(i+1 + "<i>- Category :</i> <b>" + catName + "</b><BR>");
} 



من أجل قليل من التوضيح قمت بتعريف متغير Object أسميته CatName داخل الدوارة لأنه سوف يتغير في كل مرة أي خلال الإنتقال بين السجلات و هو يحوي محتوى الحقل Category في السجل و سيكون الناتج على هذا الشكل :



The as4web Library has : ( 5 ) Categories.
1- Category : ASP
2- Category : VB.NET
3- Category : C#.NET
4- Category : ADO.NET
5- Category : ASP.NET 





لنرى هذا التتبع للكود ربما استوعبنا أكثر :



object catName = ds.Tables["categories"].Rows[0]["category"];
Response.Write(catName );

// Result : ASP


object catName = ds.Tables["categories"].Rows[2]["category"];
Response.Write(catName );

// Result : C#.NET


object isActive = ds.Tables["categories"].Rows[0]["active"];
Response.Write(isActive );

// Result : True 



أتمنى أن طريقة الوصول للحقول قد وصلت لكم الان


بهذا أكون إنتهيت من أول مثال عملي و كان باستخدام ال DataSet .


مثال أخر :

سوف نقوم بعمل نفس ما قمنا به أي عرض الأقسام كما في الطريقة السابقة و لكن باستخدام ال dataReader و الذي يفضل إستخدامه في حالة العرض بسبب سرعته مقارنة بما سبق.
ها هو الكود :



<%@ Page Language="C#" Debug="True" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">

void Page_Load()
{
string prov="Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + Server.MapPath("db.mdb");
string SQL="SELECT * FROM Categories";
OleDbConnection cn = new OleDbConnection(prov);
OleDbCommand cmd = new OleDbCommand(SQL,cn);


cn.Open();


OleDbDataReader reader = cmd.ExecuteReader();

while(reader.Read())
{
Response.Write(reader["category"].ToString() + "<BR>");
}

cn.Close();
}

</script>
<html>
<head>
</head>
<body>
<form runat="server">
<!-- Insert content here -->
</form>
</body>
</html> 



أعتقد أن من تابع درس ال DataReader في قسم ال ADO.NET سوف يفهم الكود لوحده لأنه سهل ولا يحتاج لشرح.

لقد أرفقت لكم الملفات في نهاية هذا الدرس و يمكنكم وضعها مباشرة على القرص الصلب C و تجربة الكود بنفسكم و أتمنى للجميع حظا موفقا.

محمد خليل أبو صلاح






 
  مركز التحميل :
  
  عدد مرات التحميل : 1
    تقييم المقال :

مميزجدا    ممتاز    جيد جدا   جيد   سيء    

    خيارات إضافية :

[ أرسل الدرس لصديق]      [ طباعة الدرس الحالي  ]

  دروس من نفس التصنيف :

 

أنت الزائر رقم :   123

 

 

  ASP

:: المزيد ::

   - عدد الدروس :  1 - عدد المقالات : 1 

 

  VB.NET

:: المزيد ::

   - عدد الدروس :  0 - عدد المقالات : 0 

 

  C#.NET

:: المزيد ::

   - عدد الدروس :  0 - عدد المقالات : 0 

 

  ADO.NET

:: المزيد ::

   - عدد الدروس :  10 - عدد المقالات : 0 

 

  ASP.NET

:: المزيد ::

   - عدد الدروس :  14 - عدد المقالات : 2 
 

 هل تبرمج بتقنيات ميكروسوفت؟

   

 نعم.

   

 لا.

   

 أحيانا.

   

 لا أعلم.
 

عدد المشاركين بالإستفتاء : 0

  مشاهدة نتائج هذا الإستفتاء.
  نتائج سابقة.

 

 

 

 

 

 

الحقوق محفوظة للمدرسة العربية للويب.

محمد خليل أبو صلاح
webmaster@as4web.com
2004-2005
الخصوصية - شروط الاستخدام