تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس 18- ربط قاعدة بيانات sql مع c#-vb.net وتنفيذ جمل إستعلام - الوضع المتصل
#1
[b]كاتب الموضوع : Tarek Aldwire

--- السلام عليكم ورحمة الله وبركاته ---[/b]

أولا :

قم بإنشاء قاعدة بيانات وسمها mydatabase ( تم شرح الطريقة في الدرس 17 )...
ثم قم بإنشاء جدول بها وسمه mytable وضع فيه عواميد كالتالي...

العمود - الإسم - نوع البيانات
1 - FirstName - نصية nchar(10)
2 - Age - رقم bigint

الان قم بعرض بيانات الجدول عن طريق RightClick من ال Mouse على الجدول ثم إختر Show Table Data ثم إبدأ بوضع البيانات كالتالي...

طارق - 15
إسمك - عمرك وهكذا ....




ثانيا... ربط قاعدة البيانات مع ال c#,vb.net

أولا قم بإستيراد المجال:
System.Data.SqlClient
الان ضع Button على الفورم وضع أيضا listbox ...

ثم إكتب في الكود الخاص بالحدث Click لل button1 ...

c#:
كود :
[COLOR=#0000BB]SqlConnection cn [/color][color=#007700]= new [/color][color=#0000BB]SqlConnection[/color][color=#007700](@[/color][color=#DD0000]"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\TD\Documents\mydatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"[/color][COLOR=#007700]);
[/COLOR][color=#0000BB]string mycmd [/color][color=#007700]= [/color][color=#DD0000]"select FirstName,Age from mytable"[/color][COLOR=#007700];
[/COLOR][color=#0000BB]SqlCommand mysqlcmd [/color][color=#007700]= new [/color][color=#0000BB]SqlCommand[/color][color=#007700]([/color][color=#0000BB]mycmd[/color][color=#007700], [/color][color=#0000BB]cn[/color][COLOR=#007700]);
[/COLOR][color=#0000BB]cn[/color][color=#007700].[/color][color=#0000BB]Open[/color][COLOR=#007700]();
[/COLOR][color=#0000BB]SqlDataReader myreader [/color][color=#007700]= [/color][color=#0000BB]mysqlcmd[/color][color=#007700].[/color][color=#0000BB]ExecuteReader[/color][COLOR=#007700]();
while ([/COLOR][color=#0000BB]myreader[/color][color=#007700].[/color][color=#0000BB]Read[/color][COLOR=#007700]())
{
[/COLOR][color=#0000BB]listBox1[/color][color=#007700].[/color][color=#0000BB]Items[/color][color=#007700].[/color][color=#0000BB]Add[/color][color=#007700]([/color][color=#DD0000]"firstname: " [/color][color=#007700]+ [/color][color=#0000BB]myreader[/color][color=#007700][[/color][color=#DD0000]"FirstName"[/color][color=#007700]].[/color][color=#0000BB]ToString[/color][color=#007700]() + [/color][color=#DD0000]" Age: " [/color][color=#007700]+ [/color][color=#0000BB]myreader[/color][color=#007700][[/color][color=#DD0000]"Age"[/color][color=#007700]].[/color][color=#0000BB]ToString[/color][COLOR=#007700]());
}
[/COLOR][color=#0000BB]cn[/color][color=#007700].[/color][color=#0000BB]Close[/color][COLOR=#007700]();
[/COLOR][color=#0000BB]myreader[/color][color=#007700].[/color][color=#0000BB]Close[/color][COLOR=#007700]();


[/COLOR]
vb.net :


كود :
[color=#0000BB]Dim cn [/color][color=#007700]As New [/color][COLOR=#0000BB]SqlConnection
cn[/COLOR][color=#007700].[/color][color=#0000BB]ConnectionString [/color][color=#007700]= [/color][COLOR=#DD0000]"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\TD\Documents\mydatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
[/COLOR][color=#0000BB]Dim mycmd [/color][color=#007700]As [/color][color=#0000BB]String [/color][color=#007700]= [/color][COLOR=#DD0000]"select FirstName,Age from mytable"
[/COLOR][color=#0000BB]Dim cmd [/color][color=#007700]As [/color][color=#0000BB]SqlCommand [/color][color=#007700]= New [/color][color=#0000BB]SqlCommand[/color][color=#007700]([/color][color=#0000BB]mycmd[/color][color=#007700], [/color][color=#0000BB]cn[/color][COLOR=#007700])
[/COLOR][color=#0000BB]cn[/color][color=#007700].[/color][color=#0000BB]Open[/color][COLOR=#007700]()
[/COLOR][color=#0000BB]Dim myreader [/color][color=#007700]As [/color][color=#0000BB]SqlDataReader [/color][color=#007700]= [/color][color=#0000BB]cmd[/color][color=#007700].[/color][COLOR=#0000BB]ExecuteReader
[/COLOR][color=#007700]While [/color][color=#0000BB]myreader[/color][color=#007700].[/color][color=#0000BB]Read[/color][COLOR=#007700]()
[/COLOR][color=#0000BB]ListBox1[/color][color=#007700].[/color][color=#0000BB]Items[/color][color=#007700].[/color][color=#0000BB]Add[/color][color=#007700]([/color][color=#DD0000]"firstname: " [/color][color=#007700]+ [/color][color=#0000BB]myreader[/color][color=#007700]([/color][color=#DD0000]"FirstName"[/color][color=#007700]) + [/color][color=#DD0000]" Age: " [/color][color=#007700]+ [/color][color=#0000BB]myreader[/color][color=#007700]([/color][color=#DD0000]"Age"[/color][color=#007700]).[/color][color=#0000BB]ToString[/color][COLOR=#007700])
[/COLOR][color=#0000BB]End [/color][COLOR=#007700]While
[/COLOR][color=#0000BB]cn[/color][color=#007700].[/color][color=#0000BB]Close[/color][COLOR=#007700]()
[/COLOR][color=#0000BB]myreader[/color][color=#007700].[/color][color=#0000BB]Close[/color][COLOR=#007700]()


[/COLOR]
شرح الكود السابق...
أولا:
vb.net:

كود :
[COLOR=#0000BB]Dim cn [/color][color=#007700]As New [/color][COLOR=#0000BB]SqlConnection
cn[/COLOR][color=#007700].[/color][color=#0000BB]ConnectionString [/color][color=#007700]= [/color][COLOR=#DD0000]"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\TD\Documents\mydatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"


[/COLOR]
c#:

كود :
[COLOR=#0000BB]SqlConnection cn [/color][color=#007700]= new [/color][color=#0000BB]SqlConnection[/color][color=#007700](@[/color][color=#DD0000]"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\TD\Documents\mydatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"[/color][COLOR=#007700]);


[/COLOR]
هنا قمنا بتعريف الإتصال الخاص بقاعدة البيانات mydatabase ...

vb.net :

كود :
[COLOR=#0000BB]Dim mycmd [/color][color=#007700]As [/color][color=#0000BB]String [/color][color=#007700]= [/color][COLOR=#DD0000]"select FirstName,Age from mytable"


[/COLOR]
c# :

كود :
[COLOR=#0000BB]string mycmd [/color][color=#007700]= [/color][color=#DD0000]"select FirstName,Age from mytable"[/color][COLOR=#007700];


[/COLOR]
هنا قمنا بتعريف متغير من نوع String يحوي على نص جملة الإستعلام...

vb.net :

كود :
[COLOR=#0000BB]Dim cmd [/color][color=#007700]As [/color][color=#0000BB]SqlCommand [/color][color=#007700]= New [/color][color=#0000BB]SqlCommand[/color][color=#007700]([/color][color=#0000BB]mycmd[/color][color=#007700], [/color][color=#0000BB]cn[/color][COLOR=#007700])
[/COLOR][color=#0000BB]cn[/color][color=#007700].[/color][color=#0000BB]Open[/color][COLOR=#007700]()


[/COLOR]
c# :

كود :
[COLOR=#0000BB]SqlCommand mysqlcmd [/color][color=#007700]= new [/color][color=#0000BB]SqlCommand[/color][color=#007700]([/color][color=#0000BB]mycmd[/color][color=#007700], [/color][color=#0000BB]cn[/color][COLOR=#007700]);
[/COLOR][color=#0000BB]cn[/color][color=#007700].[/color][color=#0000BB]Open[/color][COLOR=#007700]();


[/COLOR]

هنا قمنا بتعريف ال Command الذي سوف نرسله لقاعدة البيانات وفتح الإتصال...

vb.net :
كود :
Dim myreader [/COLOR][color=#007700]As [/color][color=#0000BB]SqlDataReader [/color][color=#007700]= [/color][color=#0000BB]cmd[/color][color=#007700].[/color][COLOR=#0000BB]ExecuteReader



c# :



كود :
[color=#0000BB]SqlDataReader myreader [/color][color=#007700]= [/color][color=#0000BB]mysqlcmd[/color][color=#007700].[/color][color=#0000BB]ExecuteReader[/color][COLOR=#007700]();


[/COLOR]
الان قمنا بتعريف قارئ للبيانات علما أن أنواع القوارئ هي...



ExecuteReader: في حال كان الناتج عدد كبير من البيانات...

ExecuteNonQuery: في حال لا يوجد أي قيمة مرجعة مثل عمل update أو delete ...

ExecuteScalar : في حال كان لا يوجد إلا قيمة مرجعة واحدة مثل الإسم الأول مثلا...

ExecuteXmlReader : لأخذ الناتج على شكل XML ...


الكود التالي...

vb.net:
كود :
[color=#007700]While [/color][color=#0000BB]myreader[/color][color=#007700].[/color][color=#0000BB]Read[/color][COLOR=#007700]()
[/COLOR][color=#0000BB]ListBox1[/color][color=#007700].[/color][color=#0000BB]Items[/color][color=#007700].[/color][color=#0000BB]Add[/color][color=#007700]([/color][color=#DD0000]"firstname: " [/color][color=#007700]+ [/color][color=#0000BB]myreader[/color][color=#007700]([/color][color=#DD0000]"FirstName"[/color][color=#007700]) + [/color][color=#DD0000]" Age: " [/color][color=#007700]+ [/color][color=#0000BB]myreader[/color][color=#007700]([/color][color=#DD0000]"Age"[/color][color=#007700]).[/color][color=#0000BB]ToString[/color][COLOR=#007700])
[/COLOR][color=#0000BB]End [/color][COLOR=#007700]While


[/COLOR]

c# :

كود :
[color=#007700]while ([/color][color=#0000BB]myreader[/color][color=#007700].[/color][color=#0000BB]Read[/color][COLOR=#007700]())
{
[/COLOR][color=#0000BB]listBox1[/color][color=#007700].[/color][color=#0000BB]Items[/color][color=#007700].[/color][color=#0000BB]Add[/color][color=#007700]([/color][color=#DD0000]"firstname: " [/color][color=#007700]+ [/color][color=#0000BB]myreader[/color][color=#007700][[/color][color=#DD0000]"FirstName"[/color][color=#007700]].[/color][color=#0000BB]ToString[/color][color=#007700]() + [/color][color=#DD0000]" Age: " [/color][color=#007700]+ [/color][color=#0000BB]myreader[/color][color=#007700][[/color][color=#DD0000]"Age"[/color][color=#007700]].[/color][color=#0000BB]ToString[/color][COLOR=#007700]());
}


[/COLOR]

قراءة البيانات الناتجة كما في الشكل السابق...


vb.net :

كود :
[COLOR=#0000BB]cn[/color][color=#007700].[/color][color=#0000BB]Close[/color][COLOR=#007700]()
[/COLOR][color=#0000BB]myreader[/color][color=#007700].[/color][color=#0000BB]Close[/color][COLOR=#007700]()


[/COLOR]
c# :

كود :
[COLOR=#0000BB]cn[/color][color=#007700].[/color][color=#0000BB]Close[/color][COLOR=#007700]();
[/COLOR][color=#0000BB]myreader[/color][color=#007700].[/color][color=#0000BB]Close[/color][COLOR=#007700]();


[/COLOR]
إغلاق كل شيئ تم إستخدامه وهو الإتصال والقارئ...


الان نكون قد بدأنا بأساسيات ربط قواعد البيانات...



إلى اللقاء في الدرس القادم إن شاء الله...
}}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم