السبت، 27 يوليو 2013

دورة السي شارب الدرس 18- تنفيذ جمل الإستعلام insert-update-delete


دورة السي شارب
الدرس 18- تنفيذ جمل الإستعلام insert-update-delete
السلام عليكم ورحمة الله وبركاته

اليوم سوف يكون الدرس متخصص بجمل sql من أنواعها...

 

أولا : تجهيز المشروع...

 

أولا قم بإنشاء قاعدة بيانات سمها mydatabase ثم قم بعمل جدول سمه mytable وضعه به عمود إسمه FirstName نوع بياناته nchar وعمود إسمه Age نوع بياناته bigint ...

 

الان قم بإنشاء الإتصال كما ذكرنا سابقا حيث يكون كود الإتصال كاملا...

 

قم باستيراد المجال : System.Data.SqlClient

 

أولا كود الإضافة insert ...

 

لنفترض الان أننا نريد أن نضيف للجدول mytable موظف إسمه ( tarek) عمره ( 15 ) ...

SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\TD\Documents\mydatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

string mycmd = "insert into mytable values ('tarek','15')";

SqlCommand cmd = new SqlCommand(mycmd, cn);

cn.Open();

cmd.ExecuteNonQuery();

cn.Close();

2- update ... لنفترض أننا نود تعديل عمر الموظف الذي يدعى tarek إلى 100 سنة  يكون الكود:

 

 

 

SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\TD\Documents\mydatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

string mycmd = "update mytable set Age = 100 where FirstName = 'tarek'";

SqlCommand cmd = new SqlCommand(mycmd, cn);

cn.Open();

cmd.ExecuteNonQuery();

cn.Close();

 

3- delete والان لنفترض أنك تود حذفي ( tarek )  يكون الكود:

SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\TD\Documents\mydatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

string mycmd = "delete from mytable where FirstName = 'tarek'";

SqlCommand cmd = new SqlCommand(mycmd, cn);

cn.Open();

cmd.ExecuteNonQuery();

cn.Close();

ملاحظة : يمكنك وضع شروط الحذف أو التعديل كيف ما تشاء ...مثلا...

 

 

كود:

delete from mytable where Age > 15  ;

حيث في هذه الحالة سوف يتم حذف كل شخص عمره فوق ال 15 ...

 

 - إنشاء جدول...

 

 جدول إسمه tb1 يحول على name من نوع nchar(10) و age من نوع bigint الكود:

SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\TD\Documents\mydatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

string mycmd = "create table tb1 (name nchar(10),age bigint);";

SqlCommand cmd = new SqlCommand(mycmd, cn);

cn.Open();

cmd.ExecuteNonQuery();

cn.Close(); 

لحذف الجدول الذي قمنا به ...

SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\TD\Documents\mydatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

 string mycmd = "drop table tb1 cascade";

SqlCommand cmd = new SqlCommand(mycmd, cn);

cn.Open();

cmd.ExecuteNonQuery();

cn.Close(); 

إضافة حقول إلى جدول ما ...

 

بفرض أننا نريد أن نضيف عامود brithday إلى mytable يحوي على يوم الميلاد ..

SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\TD\Documents\mydatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

string mycmd = "alter table mytable add brithday datetime";

SqlCommand cmd = new SqlCommand(mycmd, cn);

cn.Open();

cmd.ExecuteNonQuery();

cn.Close(); 

مع تحياتي/ عبدالقادر البعداني
إلى اللقاء في الدرس القادم إن شاء الله .

الدرس 18- ربط قاعدة بيانات sql مع -vb.net وتنفيذ جمل إستعلام - الوضع المتصل


دورة الدوت نت
الدرس 18- ربط قاعدة بيانات sql مع -vb.net وتنفيذ جمل إستعلام - الوضع المتصل
 --- السلام عليكم ورحمة الله وبركاته ---

 

أولا :

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

 ثم قم بإنشاء جدول بها وسمه mytable وضع فيه عواميد كالتالي...

 

العمود - الإسم - نوع البيانات                        

 1 - FirstName - نصية nchar(10)

 2 - Age - رقم bigint

 

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

 

طارق - 15

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

 

 

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

 

أولا قم بإستيراد المجال:

System.Data.SqlClient

الان ضع Button على الفورم وضع أيضا listbox ...

 

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

 

vb.net

Dim cn As New SqlConnection

cn.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\TD\Documents\mydatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

Dim mycmd As String = "select FirstName,Age from mytable"

Dim cmd As SqlCommand = New SqlCommand(mycmd, cn)

cn.Open()

Dim myreader As SqlDataReader = cmd.ExecuteReader

While myreader.Read()

ListBox1.Items.Add("firstname: " + myreader("FirstName") + " Age: " + myreader("Age").ToString)

End While

cn.Close()

myreader.Close()

شرح الكود السابق...

أولا:

vb.net:

Dim cn As New SqlConnection

cn.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\TD\Documents\mydatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

 

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

 

vb.net :

Dim mycmd As String = "select FirstName,Age from mytable"

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

 

vb.net :

 

كود:

Dim cmd As SqlCommand = New SqlCommand(mycmd, cn)

cn.Open()

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

 

vb.net :

كود:

Dim myreader As SqlDataReader = cmd.ExecuteReader

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

 

 

 

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

 

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

 

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

 

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

 

 

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

While myreader.Read()

ListBox1.Items.Add("firstname: " + myreader("FirstName") + " Age: " + myreader("Age").ToString)

End While

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

 

cn.Close()

myreader.Close()

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

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

إلى اللقاء في الدرس القادم إن شاء الله...

الجمعة، 26 يوليو 2013

دورة السي شارب الدرس 17- ربط قاعدة بيانات accessمع c#- وتنفيذ جمل إستعلام - الوضع المتصل


دورة السي شارب
الدرس 17- ربط قاعدة بيانات accessمع c#- وتنفيذ جمل إستعلام - الوضع المتصل


السلام عليكم ورحمة الله وبركاته...

*** ملاحظة : الفرق بين هذا الدرس والدرس 18 هو قاعدة البيانات المستخدمة فقط ***

 

 

أولا :

 

قم بإنشاء قاعدة بيانات وسمها mydatabase ( تم شرح الطريقة في الدرس 15 )...

 ثم قم بإنشاء جدول بها وسمه mytable وضع فيه عواميد كالتالي...

 

العمود - الإسم - نوع البيانات

 1 - FirstName - نصية nchar(10)

 2 - Age - رقم bigint

 

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

 

طارق - 15

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

 

 

 

 

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

 

أولا قم بإستيراد المجال:

كود:

System.Data.OleDb;

 

 

 

الان ضع Button على الفورم وضع أيضا listbox ...

 

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

OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\TD\Documents\mydatabase.mdb");

string mycmd = "select FirstName,Age from mytable";

OleDbCommand loecmd = new OleDbCommand(mycmd, cn);

cn.Open();

OleDbDataReader myreader = loecmd.ExecuteReader();

while (myreader.Read())

{

listBox1.Items.Add("firstname: " + myreader["FirstName"].ToString() + " Age: " + myreader["Age"].ToString());

}

cn.Close();

myreader.Close();

شرح الكود السابق...

OleDbConnection cn = new OleDbConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\TD\Documents\mydatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

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

string mycmd = "select FirstName,Age from mytable";

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

OleDbCommand mysqlcmd = new OleDbCommand(mycmd, cn);

cn.Open();

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

OleDbDataReader myreader = loecmd.ExecuteReader();

 

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

 

 

 

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

 

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

 

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

 

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

 

 

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

while (myreader.Read())

{

listBox1.Items.Add("firstname: " + myreader["FirstName"].ToString() + " Age: " + myreader["Age"].ToString());

}

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

myreader.Close();

cn.Close();

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

 

 

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

 

بإذن الله في الدرس القادم سوف نطبق جمل إستعلام متقدمة والتعلم كيف عمل insert,update,delete إلى ما هنالك...

 

مع تحياتي :عبدالقادر البعداني

إلى اللقاء في الدرس القادم إن شاء الله...