طريقة تصميم وبرمجة قاعده بيانات SQL server وربطها بالفيجوال بيسك

 تكملة دروس دورة الربط بين sql server and visual studio 

 بعد ماعرفنه مفاهيم حول انظمه قواعد البيانات dbms نكون وصلنا الى مرحلة كيف ننشئ و نصمم قاعدة البيانات sql server خاصه بالمشروع visual studio حتى يتم ربط بينهم عن طريق الوضع المنفصل والكائن DataTable… 

 تصميم قاعدة البيانات والجداول التي تحتويها تعتمد على الرسم البياني يعني اذا كانت عندك فكره حول تصميم قاعدة البيانات وتريد تخلي هاي الفكره على ورقه يجب ان ترسم رسم بياني اي تجيب ورقه وقلم و ترسم قاعدة البيانات على ورقه واول شي تخلي اسم لقاعدة البيانات وتخلي جداول الي تريدهه مثلا 3، 4 ، 5 جداول وبكيفك ، ثم نضيف حقول بالجداول وحسب نوع البيانات الذي يقابل حقل معين وبعدها نخلي مفتاح 🔑 رئيسي حتى ما تتكرر البيانات ثم نعمل علاقات بين الجداول اذا تطلب الامر واخير نحفظ بعد كل خطوه نسويهه…

 طبعا هاي هي ملخص انشاء قواعد البيانات المتعارف عليها روتينياً اما كاحتراف في نظم إدارة قواعد البيانات تحتاج الكثير من الاجراءات والعمل حتى نصمم قاعده البيانات مقبوله في السوق من قبل الزبون .

 انه وياكم راح نسوي قاعدة بيانات بسيطه اختصارا للوقت لان عدنه اكثر من طريقه للاتصال بقواعد انظمة ادارة البيانات sql server مع visual studio لازم اشرحهم بالتفصيل ولذلك سويت قاعدة بيانات بسيطه تحتوي على جدولين وكل جدول يحتوي على حقول ومفتاح رئيسي وعلاقه بين جدولين ومن ثم نربط هذه القاعدة البيانات sql مع visual studio وبنفس وقت راح يكون مشروع بسيط لان مثل ماوضحت نختصر وقت حتى نشرح بقيه طرق الاتصال ومن ثم نبرمج مشروع متكامل… 

راح نستخدم نظام ادارة قواعد البيانات والفيجوال دوت نت اصدار : SQL SERVER 2014 

 visual studio 2017 

 وانتم بكيفكم اي نظام او فيجوال عدكم سواء 2008 او 2012 او 2010 لا يهم بخصوص كيف انشاء قاعدة البيانات في نظام ادارة قواعد البيانات sql server انه شرحت دوره بالتفصيل في فتره سابقة بالقناة اذا شخص مايعرف خل يطلع على اساسيات الدورة sql server بالقناة ويبحث عليهه لان ضروري يطلع حتى ما تواجهه اي مشاكل… 

انشاء  وتصميم قاعدة بيانات SQL server

 المرحلة الاولئ خطوات تصميم وانشاء قاعدة البيانات في sql server 2014 وكالتالي :- 

 ➖ اسم قاعدة البيانات datastudent تحتوي على جدولين هما ➖ جدول data_subjects 

 ➖ جدول data_Table

 

  

 جدول data_subjects يحتوي على الحقول التالية : id➖➖➖➖int 

(name➖➖➖varchar(50

 first➖➖➖➖int 

the_second➖➖int 

the_third➖➖➖int 

the_fourth➖➖➖int 

the_fifth➖➖➖➖int 

sixth➖➖➖➖➖int 

seventh➖➖➖➖int 

eighth➖➖➖➖➖int 

ninth➖➖➖➖➖ int 

tenth➖➖➖➖int 

total➖➖➖➖int 

the_average➖➖➖float the_result➖➖➖varchar(50) appreciaion➖➖➖varchar(50) 

 

 على جهه اليسار اسماء الحقول و على اليمين يقابله نوع بيانات الحقل . 



انشاء  وتصميم قاعدة بيانات SQL server

انشاء  وتصميم قاعدة بيانات SQL server

جدول data_Table يحتوي على الحقول التاليه :

 id ➖➖➖ int 

(name ➖➖➖varchar(50

data➖➖➖➖data 

(classe ➖➖➖varchar(50 

(qovernorate ➖➖varchar(50

(living ➖➖➖➖varchar(50

 phone➖➖➖➖➖int 

انشاء  وتصميم قاعدة بيانات SQL server


انشاء  وتصميم قاعدة بيانات SQL server



  المرحلة الثانية وهي ربط قاعدة البيانات sql server بـ visual studio وبالوضع المنفصل وعن طريق DataTable الي تكلمنه عنه سابقا ..

  قبل لا نبدا في البرمجة visual studio والربط يجب ان نتعرف على اهم العناصر الاساسية (مزودات الاتصال) التي نحتاجها في اي مشروع برمجي للاتصال بـ sql server والتي تقع ضمن مكتبة (فضاء الاسماء)

Imports System.Data.SqlClient

هي المكتبة التي نحتاجها للوصول (الاتصال) لقاعدة نظام ادارة البيانات sql server ➖اهم أسماء العناصر او الكائنات التي نحتاجها و التابعه للمكتبة هي :

 SqlCommand يستخدم لتنفيذ استعلام أو عملية من عمليات ( الإضافة [Insert]، التعديل [Update]، الحذف [Delete] ) أو يمكن تنفيذ إجراء مخزن ( Stored Procedure ) من قاعدة البيانات .

 SqlConnection يمثل العنصر الاساسي للاتصال بقاعدة انظمة ادارة البيانات SQL SERVER وتختلف طرق الاتصال بحسب نوع الاتصال وان شاء الله اشرحة بالتفصيل .

 SqlDataAdapter يعتبر جسر او حلقه وصل بين ( Dataset و DataTable ) و مصدر البيانات اي هو العنصر الأساسي المسؤول عن تحميل البيانات من مصدر البيانات عبر هذين الكائنين DataTable ، Dataset . 

 SqlDataReader يستخدم هذا الكائن لقراءة سجلات بشكل فردي أي ( كل سجل على حده ) التعامل مع هذا الكائن شبيه بالكائن ( Stream ) وللعلم أن هذا الكائن يقرأ بشكل متسلسل إلى الأمام ولايمكن إعادة قراءة البيانات التي تم قرأتها مسبقاً . 

 SqlError نكدر نستخدمه للاستفسار عن الأخطاء والتحذيرات التي قد تحصل اثناء تنفيذ البرنامج والتي يصدرها الـ( SQL Server )

 . SqlException يستخدم ضمن جملة المحاولة ( Try, Catch SqlEx As Exception, End Try ) نستخدمه لعرض أو الاستفسار عن الأخطاء أو التحذيرات التي تطرأ في حال كانت الجملة ( Try ) في خطأ أو تحذير من الخادم يعني نضع اي كود عدنه داخل هذه العنصر Try لمنع حدوث أي خطا

    SqlParameter يمكن استخدام هذا الكائن مع الـ( SqlCommand )، يساعدنا على تنظيم او تنفيذ العمليات أو الإجراءات المخزنة بطريقة مثالية والتي تتم عبر تحديد اسم المعامل واسم العامود التابع له ونوعه وحجمه، إذا لم تفهمونه مبدئياً فهذا شيء عادي لأنه يحتاج إلى تمثيل برمجي ولاحقاً نتعلمه من خلال شرح . SqlTransaction تنفيذ مجموعة من الاوامر حيث يحوي عده عمليات و عدة فشل احد عمليات تفشل مجموعه بشكل كامل وعند العكس تنجح المجموعه بشكل كامل .

 SqlTypes والذي يحتوي الأنواع المدعومة من قِبل الـ( SQL ) 

  هذه العناصر  اعلاه الاساسية راح نحتاجهه في برمجة وربط sql server مع visual studio وسترونها كثيرا في اي مشروع برمجي وبدونها لا يمكن ربط اي قاعدة بيانات بـsql وبرمجتها بـ visual studio ،،

 طبعا ليست فقط هذه العناصر الموجودة في المكتبة وانما هناك الكثير لكن ما نحتاجه في برمجة وربط قواعد البيانات هي ماذكر اعلاه .

 المرحلة الثانية الدخول الى visual studio لنبحر معاً لتصميم الشاشات form ونكتب الاكواد الخاصة بالمشروع .



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

 الغرض من هذا البرنامج هو معرفة ما ياتي : 

 ➖ الاتصال بقواعد البيانات sql server بالوضع المنفصل 

 ➖  معرفة انواع الاتصال بـ sql server سواء عن طريق user او server المحلي او windows وغيرها . 

 ➖ معرفة العمليات الرياضية والحسابية برمجيا 

 ➖ معرفة طريقه برمجة وربط sql server عن طريق DataTable بالتفصيل 

 ➖ برمجة ازرار الاضافة ، الحذف ، الحفظ ، التعديل ، البحث 

 ➖ معرفة الاستعلام من شاشة لاخرى بالكود

   ➖  التحكم بخصائص DataGridView عن طريق الاكواد…

 والغرض الاهم من المشروع هو تعليم كيف نبرمج اي مشروع برمجي بكل سهوله وتطويره من خلال الاضافات التي نحتاجها والكثير من تفاصيل ان شاء الله نتعرف عليها خلال الدروس القادمة

 # نبدا ندخل إلى فيجوال استوديو و ننشئ برنامج جديد باي اسم ونظيف له Form اثنان

 ١-  ادوات شاشة Form الاولى الخاصة ببيانات الطلاب من صندوق الادوات Toolbox نظيف الادوات التالية : 

 ➖ـ TextBox عدد 7

 ➖ـ DateTimePicker عدد 1 

 ➖ـ Button عدد 6 

 ➖ـ label عدد 7 

➖ـ ProgressBar عدد 1 

 ➖ـ DataGridView عدد 1 

 ➖ـ panel عدد 4 

 ➖ـ Timer عدد 1

 الادوات اعلاه كما موضحة بالصورة رقم 1 ادناه 

طريقة تصميم وبرمجة قاعده بيانات SQL server وربطها بالفيجوال بيسك

    ٢-  ادوات الشاشة Form الثانيه التي تخص بيانات درجات الطالب والعمليات الحسابية . تحتوي الشاشة على الادوات التالية : 

 ➖ـ TextBox عدد 15

 ➖ـ Button عدد 5 

 ➖ـ label عدد 16 

 ➖ـ DataGridView عدد 1 

 ➖ـ panel عدد 1 

 ➖ـ Combobx عدد 1

 ➖ ـ PictureBox عدد 1

  الادوات موضحة كما في صوره رقم 2 ادناه 

انشاء  وتصميم قاعدة بيانات SQL server

    ملاحظه

  نغير اسماء الادوات في كلا الشاشتين حتى تتغير اسمها في مرحلتين اولا مرحلة تصميم على Form والادوات التي نغيرها في مرحلة تصميم هي Label , Button ونغيرها بعد ضغط عليها ومن الخصائص ثم تبويب Appearance ونختار خاصية TextBox مرحلة الاكواد نغيرها من الخصائص ومن تبويب Design ومن خاصية (name) والادوات لتي نغيرها برمجيا هي TextBox فقط 

نقدر مانغير اسماء الادوات في مرحلة الاكواد لكن بسبب وجود مثلا اداة متكرره 16 مره كيف نفرق بينهم عند ربط بينها وبين حقول قاعدة البيانات ،، وللسهوله اكثر اذا عدنه جدول يحتوي على اكثر من حقل ونريد نظهر بيانات هذا حقل في برمجة من خلال TextBox لازم تكون بنفس الاسم مع الاداه TextBox حتى ما تظهر اخطاء عند برمجة اي مشروع ، وانتم لكم الحريه في الاختيار ،، وان شاء الله من نكتب الاكواد سوف تعلمون اهميه تغير الاسماء برمجيا .

 

 اولا برمجه الشاشة Form الاولى التي تحتوي على بيانات الطالب .

 نضغط كلك ايسر بالماوس ع شاشة وفوق public classe From1 نستدعي مكتبة sql server للاتصال بها والتعامل مع عناصرها ومزودات البيانات وكما يلي

.vb.net
  
Imports System.Data
Imports System.Data.SqlClient

ثم نكتب نص الاتصال بـ sql server طبعا هناك نوعين من الاتصال بانظمة ادارة قواعد البيانات وهي :  ➖ محليه : تكون قاعدة البيانات مخزنه على جهاز واحد ويتم دخول عليها اما عن طريق صلاحيات الـ windows او عن طريق user name و password ➖ عن بعد وتكون قاعدة البيانات مخزنة على عده اجهزة حاسوب ويتم التعامل معها عن طريق الشبكات networks ويتم تحكم بها من قبل عدة مستخدمين وسواء كان عن طريق يوزر وباسورد او windows

 احنه راح نتصل بـ sql server عن طريق صلاحيات الـ windows اي نظام الموجود على الحاسوب

 قبل لا نكتب نص الاتصال نضيف module الى المشروع و فائده مديول هو تنظيم جميع الاكواد او كتابه الاكواد في مديول التي تتكرر اكثر من مره في المشروع حتى نستدعيها بمجرد ان نكتب اسم الكود الذي تم انشاؤه في اي مكان في مشروع  ، ثم نكتب نص الاتصال بـ sql server في مديول كالتالي :

.vb.net
  

Public Dim Con As New SqlConnection("Data Source=DESKTOP-AM5B4ST\SQLEXPRESS;Initial Catalog=datastudent1;Integrated Security=True")

شرح نص الاتصال طبعا اكثر المشاكل التي تحصل مع المبتدئين وحتى بعض المبرمجين تكون حول الاتصال بقواعد البيانات و 100% تصير وياكم مشاكل بالاتصال اذا ما تفهمون نص الاتصال كلمه كلمه وراح تشوفون هذا شي ، المهم خل نشرح كود 

 ➖اولا public جعلنا نص الاتصال عام حتى نستدعيه في اي مكان في المشروع 

 ➖ثم عرفنا متغير اسمه con ثم مهدنا الى الكائن SqlConnection الذي يعتبر مزود للاتصال بقواعد البيانات sql server الذي تم شرحه سابقا، 

 ➖ وبين قوسين كتبنا Data server هو اسم السيرفر الذي توجد عليه قاعدة البيانات في نظام sql server ويمكن الحصول على اسم سيرفر من خلال الذهاب الى نظام ادراة قواعد البيانات ثم ضغط كلك ايمن على سيرفر ونختار Properties وسنلاحظ وجود اسم سيرفر ننسخه DESKTOP-AM5B4ST\SQLEXPRESS 

 وسيكون اسم سيرفر حسب ما موجود عدكم من اصدار للـ sql server 

 انظر للصور ادناه كيف تم نسخ سيرفر ثم نلصق السيرفر 

طريقة تصميم وبرمجة قاعده بيانات SQL server وربطها بالفيجوال بيسك

طريقة تصميم وبرمجة قاعده بيانات SQL server وربطها بالفيجوال بيسك

   ـ➖ Initial Catalog وتعبر عن اسم قاعدة البيانات الذي سنكتبه مباشره بعدها 

 ➖ ـ datastudent1 اسم قاعدة البيانات التي تم انشاؤها ويمكنكم تغير الاسم كما يحلو لكم 

 ➖ـ Integrated Security وتعبر عن طريقه الدخول لقاعدة البيانات هل هي عن طريق صلاحيات النظام او عن طريق user ld و password وكما مبين لكم نحن دخلنا للنظام ادارة قواعد البيانات عن طريق صلاحيات windows وبما نحن اخترنا هذا الدخول نكتب بعدها True .. 

 هذا كل ما موجود في نص الاتصال لكن هناك اشكال اخرى لكتابة كود هذا الاتصال اعلاه مثلا

.vb.net
  
Public Dim Con As New SqlConnection("Server=.\SQLEXPRESS; Database=datastudent1;Integrated Security=True")

طبعا لو تلاحظون الفرق بينه وبين الكود الاول سترون تم حذف كلمة Data وتم استبدال اسم سيرفر DESKTOP-AM5B4ST\SQLEXPRESS بنقطه . وتم حذف Initial Catalog وتعويض مكانها DataBase ،،، هذا كود انا افضله كمختصر للكود الاول ،، وبصيغه اخرى نستطيع كتابه نص الاتصال كما يلي :

Public Con As New SqlConnection("Data Source=DESKTOP-AM5B4ST\SQLEXPRESS;Database=datastudent1;Integrated Security=True") 

فرق بينه وبين كود الاول هو تم حذف كلمه Initial Catalog فقط وتعويضها بكلمة database 

 الخلاصه جميع اكواد النصوص الثلاثه اعلاه الخاصه بالاتصال مع sql server شغاله بشرط في حاله الاتصال عن طريق صلاحيات النظام windows مع مراعاة اصدار sql server ،، 

 ملاحظة قد ترون في بعض المشاريع اصدار السيرفر يختلف من اصدار الئ اخر وذلك حسب اصدار sql server مثلا Localhost\sqlexpress .\sqlexpress pc_Name\sqlexpress IP_Adress وهذه نستخدمها فقط في حاله اصدار الاكسبريس اما بخصوص طريقه دخول عن طريق user ld ، password او عن طريق الشبكات networks التي تكون قاعدة البيانات مخزنه على عده اجهزه حاسوب سيتم شرحها عندما نبرمج مشروعنا الثاني للاتصال بقاعدة البيانات بالوضع منفصل عن طريق Dataset 

  شاهدوا صور ادناه لتوضيح نصوص الاتصال التي ذكرت اعلاه 

طريقة تصميم وبرمجة قاعده بيانات SQL server وربطها بالفيجوال بيسك

  

بعد ما انتهينا من كود الاتصال ناتي الى تعريف متغيرات وتمهيدها للكائنات ومزودات بيانات للاتصال بـ sql server وبنفس الوقت نحمل الجداول وتكون الاكواد كالتالي :  كود ادناه عباره عن تعريف متغيرات للاتصال بالوضع المنفصل عن طريق DataTable وايضا تعريف متغير mynewldstudent لجلب اكبر رقم للترقيم التلقائي

.vb.net
  
Public studentdt As New DataTable

Public studentda As New SqlDataAdapter

Public mynewldstudent As Integer

،============ الاكواد ادناه للاتصال بالجدول في قاعدة البيانات وملئ الجدول بالبيانات عن طريق الكائن SqlDataAdapter الذي تم شرحه سابقا وسيتم استدعاء load_student() هذا كود في بعض اماكن مشروع باعتبار احنه عرفناه متغير عام

.vb.net
  

Public Sub load_student()

studentdt.Clear()

studentda = New

SqlDataAdapter("select * from data_Table", Con)

studentda.Fill(studentdt)

End Sub

،=============== كود ادناه لجلب اكبر رقم للترقيم التلقائي للارقام عند حفظ البيانات في جدول

.vb.net
  
Public Sub code_student()

Dim dt As New DataTable

Dim da As New

SqlDataAdapter("select max(id) from data_Table", Con)

da.Fill(dt)

If IsDBNull(dt(0)(0)) = True Then

mynewldstudent = 1
Else
mynewldstudent = dt(0)(0) + 1
End If

End Sub

=========== شرح الاكواد اعلاه لو ترجعون للدروس السابقه تم شرح جميع الكائنات والعناصر الاساسية ومزودات للاتصال بـ sql server ،

 شاهد الاكواد اعلاه في صور ادناه للتوضيح اكثر 

طريقة تصميم وبرمجة قاعده بيانات SQL server وربطها بالفيجوال بيسك

بعدها نذهب الى الحدث Form_Load ونكتب الكود التالي للاتصال و لتحميل حقول جدول وكما يلي :

.vb.net
  

load_student()

DataGridView1.DataSource = studentdt

كود بسيط لا يحتاج شرح استدعينا متغيرات الاتصال لتحميل جدول وحقوله عن طريق متغير load_student    

الى هنا نكون قد انتهينا من جمل الاتصال بقاعدة البيانات وتحميل جداول والحقول فيها عن طريق DataGridView ,, 

 

سوف نبرمج الان الازرار الخاصه بـ الحذف ، الحفظ ، الاضافه ، التعديل ، البحث ، 

  برمجة زر الاضافة

  نقوم بإنشاء اجراء خاص بالاضافة باسم Public Sub newstudent ثم نكتب اسماء جميع Textbox ونجعلها تساوي " " طبعا انه غيرت اسماء Textbox ونكتب الكود التالي في Form بمكان فارغ لانشاء الاجراء :

.vb.net
  

Public Sub newstudent()

code_student()

student_id.Text = mynewldstudent

student_name.Text = ""

student_data.Value = Now.Date

student_classe.Text = ""

student_qovernorate.Text = ""

student_living.Text = ""

student_phone.Text = " "

End Sub

 كود بسيط استدعينا اجراء code_student الذي تم برمجته في مديول وتم شرحه في درس سابق وجعلنا كل Textbox يساوي لا شي من خلال علامه الاقتباس " " وبما يقابله من خاصية ولازم يكون عدكم معرفه بخصائص الادوات بـ Visual studio ثم ننقر على زر الاضافة ونستدعي اسم الاجراء فقط ( )newstudent 

  برمجة زر الحفظ

 ننقر على زر الحفظ ونكتب الكود التالي

.vb.net
  
studentdt.Rows.Add() 

Dim last As Integer = studentdt.Rows.Count - 1
studentdt.Rows(last).Item("id") = student_id.Text
studentdt.Rows(last).Item("name") = student_name.Text
studentdt.Rows(last).Item("data") = student_data.Value
studentdt.Rows(last).Item("classe") = student_classe.Text
studentdt.Rows(last).Item("qovernorate") = student_qovernorate.Text
studentdt.Rows(last).Item("living") = student_living.Text
studentdt.Rows(last).Item("phone") = student_phone.Text


Dim save As New SqlCommandBuilder(studentda)
studentda.Update(studentdt)

studentdt.AcceptChanges()
MsgBox("تم حفظ البيانات بنجاح")

load_student()

newstudent()

 شرح الكود

 عرفنه متغير last ويساوي عدد صحيح لغرض تحديد عدد صفوف Rows ناقص 1 , بعدها استدعينا studentdt من مديول الخاصه بملئ البيانات من خلال DataTable ولربطها مع الصفوف مثلا الصف Rows الاول الموجود في قاعدة البيانات ونضعه بين قوسين name ويقابله TextBox الذي نكتب عليه بيانات وهنا انا غير اسماءهم مثلا student_name وهكذا في بقيه السطور البرمجية ، بعدها عرفنه متغير اسمه save وجعلناه ياخذ الكائن SqlCommandBuilder الذي يحتوي على عناصر لمعالجة البيانات من خلال حذف وتحديث وحفظ وتم شرح هذا كائن سابقا بالتفصيل وكتلكم واذكركم بكلامي بأن من ضروري اذا تردون تتعلمون برمجه يجب ان تفهموا تفاصيل كل كلمه تكتب وانه اخص الكائنات التي تم شرحها سابقا بالتفصيل ،،، بعدها استدعينا متغير studentda الخاص بـ SqlDataAdapter المسؤول عن احداث تغيرات بعد اجراء كل عميله يقوم بيهه المستخدم عن طريق AcceptChanges وايضا شرحت الكائن سابقا بالتفصيل ،، ثم وضعنا رساله MsgBox تظهر للمستخدم عند حفظ بيانات بعدهه استدعينا load_student الخاص بملئ الجدول بالبيانات التي قام بها المستخدم بادخالها واخر شي استعدينه اجراء newstudent الخاص بوضع رقم تسلسلي اكبر يعني المستخدم من يدخل بيانات ويحفظها راح تاخد رقم معين مثلا 1 ومن يكرر عمليه مره ثانيه تاخذ رقم 2 وهكذا…

 برمجة زر التعديل

  كود التعديل نفس كود الحفظ بالضبط فقط غيرنه اسم متغير last بـ pos الخاص بالتعديل وجعلنا كائن BindingContext يقوم بالتعديل من متسخدم عن طريق الاداه Textbox ويكون الكود كالتالي في زر التعديل :

.vb.net
  

Dim pos As Integer = BindingContext(studentdt).Position()

studentdt.Rows(pos).Item("id") = student_id.Text
studentdt.Rows(pos).Item("name") = student_name.Text
studentdt.Rows(pos).Item("data") = student_data.Value
studentdt.Rows(pos).Item("classe") = student_classe.Text
studentdt.Rows(pos).Item("qovernorate") = student_qovernorate.Text
studentdt.Rows(pos).Item("living") = student_living.Text
studentdt.Rows(pos).Item("phone") = student_phone.Text

Dim save As New SqlCommandBuilder(studentda)

studentda.Update(studentdt)

studentdt.AcceptChanges()

MsgBox("تم تعديل البيانات بنجاح")

load_student()

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


  صوره توضح اكثر كيف تم برمجة زر الحفظ

برمجة زر الحفظ

 صورة توضح كيف تم برمجة زر التعديل

برمجة زر التعديل


 صوره توضح كيف تم برمجة زر الاضافة واستدعاء اجراء الترقيم التلقائي داخله

برمجة زر الاضافه

    برمجة كود عرض البيانات المحفوظه في اداة DataGridview على Textbox

 والغرض منها لتعديلها ،، اول شي نضغط كلك ايسر مرتين على DataGridview ونغير حدث الاداه الى SelectionChanged والغرض من تغير حدث هو عند ضغط على اي صف في الاداه نفسها يتم وضع بيانات تلقائيًا على الاداه Textbox التي تم تغير اسمها برمجيا ثم نكتب الكود التالي :

.vb.net
  

Try 

Dim pos As Integer = BindingContext(studentdt).Position()


student_id.Text = studentdt.Rows(pos).Item("id")

student_name.Text = studentdt.Rows(pos).Item("name")


student_data.Value = studentdt.Rows(pos).Item("data")


student_classe.Text = studentdt.Rows(pos).Item("classe")


student_qovernorate.Text = studentdt.Rows(pos).Item("qovernorate")


student_living.Text = studentdt.Rows(pos).Item("living")


student_phone.Text = studentdt.Rows(pos).Item("phone")


Catch ex As Exception

End Try

 شرح الكود 

بسيط وضعنا الكود باكملة داخل Try لمنع حدوث اي مشاكل عند تنفيذ ثم جعلنا الاداه Textbox التي تم تغير اسمها برمجيا تاخذ الحقل في جدول الموجود في قاعدة البيانات مثلا صف الاول id اخذ اداه student_id وهكذا في بقية الاسطر .

 برمجة زر الحذف

  ننقر على زر الحذف ونكتب الكود التالي

.vb.net
  

If MsgBox("هل تريد حذف الطالب", MsgBoxStyle.OkCancel, "تاكيد الحذف") = MsgBoxResult.Ok Then

Dim pos As Integer = BindingContext(studentdt).Position()


studentdt.Rows(pos).Delete()


Dim save As New SqlCommandBuilder(studentda)


studentda.Update(studentdt)


studentdt.AcceptChanges()

MsgBox("تم الحذف")

load_student()

Else

End If

 كود لا يحتاج شرح لانه تم شرح كائن SqlCommandBuilder المسؤول عن الحفظ والحذف والتعديل

 برمجة زر البحث 

 ننقر على زر البحث ونكتب الكود التالي :

.vb.net
  
studentdt.Clear()

studentda = New SqlDataAdapter("select * from data_Table where name like '%" & TextBox1.Text & "%'", Con)


studentda.Fill(studentdt)

 كود البحث ايضا سهل باعتبار كائن SqlDataAdapter تم شرحه بالتفصيل مسبقا وهذا دليل على انه الدروس السابقة هي من توضح هذه الاكواد وبالتالي تكون فاهم كل كود يكتب الان بشرط اذا فهمت واطلعت على دروس سابقه ، لان الكائنات شرحتهه اكثر من مره حتى تكون عدكم معلومات وشلون نترجم هاي معلومات الى فكره ونطبقهه من خلال الاكود . 

 المهم كود البحث نكدر نتحكم بيه يعني نكدر نخليه يبحث على معلومه معينه في DataGridView اما عن طريق الاسم مثلا نكتب اسم معين عدنه محفوظ ونبحث عليه من بين اسماء كثيره او عن طريق باقي الحقول يعني رقم تليفون او سكن او صف او محافظه وهكذا حسب ماموجود عدنه من حقول في جدول ، ـ select * from حددنه جدول ـ data_Table اسم جدول ـ where شرط البحث عن ـname خلينا يبحث بالاسم ونكدر نغير طريقه بحث مثل ماوضحت بمكان الاسم نخلي اي حقل عدنه محفوظ في الجدول مثلا نخليه يبحث عن طريق المحافظه وهكذا .. 

  الصور ادناه توضح اكواد الحذف + والبحث + كود عرض البيانات على Textbox 

صورة توضح اكثر كيف تم برمجة عرض البيانات على Textbox

برمجة زر الحفظ


 صورة توضح اكثر كيف تم برمجة زر الحذف

برمجة زر الحذف


 صورة توضح اكثر كيف تم برمجة زر البحث

برمجة زر البحث


  

 برمجة وتغير بعض خصائص DataGridView برمجيا طبعا هناك الكثير من الخصائص التي تجعل من تغير شكلها يضيف لمسات جميله للبرنامج مثلا تغير الوان صفوف بشكل جميل ، اضافة الادوات داخلها مثل Button ، pictureBox , او تغير اسماء الحقول من الانكليزي الى العربي ، او تغير عرض وطول حجم عامود فيها وغيرها من الخصائص ،، احنه راح نغير خاصية اسماء الحقول الموجوده في الجدول والتي تم تحميلها في DataGridView الئ العربي طبعا برمجة DataGridView من خلال تغير خصائصها برمجيا تكون كتابة اكوادها في حدث لود الفورم Form_Load ➖كود تغير اسماء الاعمدة الئ العربي بسيط ، في حدث الفورم نكتب الكود كالتالي :

.vb.net
  

DataGridView1.Columns(0).HeaderText = "ت"
DataGridView1.Columns(1).HeaderText = "الاسم"
DataGridView1.Columns(2).HeaderText = "تاريخ الولادة"
DataGridView1.Columns(3).HeaderText = "الصف"
DataGridView1.Columns(4).HeaderText = "المحافظة"
DataGridView1.Columns(5).HeaderText = "السكن"
DataGridView1.Columns(6).HeaderText = "التليفون"            

End With 

 كود سهل بس احب انوه اذا نريد نكتب كود تغير اسماء الاعمده دائماً يكون تسلسل تغير الاعمده من الصفر مثل ما مكتوب امامكم ، يعني مثلا عدنه 10 حقول في جدول يكون تسلسل حقل الاول 0 الى ان نوصل للحقل العاشر يكون تسلسله 9 وهكذا حسب ماموجود عدنه من حقول… 

برمجة تغير الوان صفوف عند عرض بيانات في اداة DataGridView ، كذلك في حدث Form_Load نكتب الكود التالي :

.vb.net
  

DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter


DataGridView1.MultiSelect = False

With Me.DataGridView1

.RowsDefaultCellStyle.BackColor = Color.Bisque

.AlternatingRowsDefaultCellStyle.BackColor = Color.Yellow

الكود بسيط يتم تحكم بالالوان وتغيرها من خلال السطرين الاخيرين السطر قبل الاخير الذي ينتهي بلون Color.Yellow يمكن تغير اللون الاصفر Yellow الى اي لون يعجبكم السطر الاخير Color.Bisque الذي ينتهي بـلون Bisque ايضا يمكن تغيره حسب ماترغبون وعند تنفيذ سترون التغيرات في DataGridView عند الضغط على اي صف من معلومات المعروضه عليها… .

  انظر الى صور ادناه توضيح كيف تم كتابة كود تغير الوان DataGridView وكود تسمية روؤس الاعمدة الى عربي .

طريقة تصميم وبرمجة قاعده بيانات SQL server وربطها بالفيجوال بيسك


  برمجة اداة progressBar 

اذا تذكرون من كتبنه ادوات شاشة الاولى من ضمنهه هاي الاداه شنو فائدتهه ، طبعا هاي الاداه لها حدث واحد برمجيا وتضيف شكل جميل للشاشه وتاخذ شكل العداد (التحميل) بالاشتراك مع اداة Timer ،،

 ناخذ مثال اذا ملاحظين اغلب مواقع الإلكترونية لمن تنزلون ملف من عدهه وتضغط على زر تحميل راح يطلع عداد يكلك انتظر لمده 10 ثواني او حسب مامبرمج في موقع من وقت وبالتالي ينقلك لصفحه تحميل وتلاحظ شريط بلون اخضر يعد ،، هاي الاداه نفس فكره راح نخليهه عندما مستخدم يعدل على بيانات محفوظه ويضغط على زر تعديل يظهر شريط اخضر ليقوم بالتعديل، طبعا مو شرط تخلوها شي راجعلكم وراح شوفون من نفذ البرنامج ونعدل على بيانات

 ملاحظه

 الاداه progressBar تشترك مع اداة Timer برمجيا وفائده Timer هو عباره عن موقت دقائق او ثواني او ساعات يستخدم لتنفيذ مجموعة من الاوامر كل فتره زمنية محدده وله خاصيتان منها خاصيه lnterval هي فتره زمنيه و كل 1000 تساوي ميلي ثانيه واذا نريد نخلي ساعه نكتب 3600000 ،، وله حدث واحد ،،

  نضغط على Timer كلك ايسر ومن خصائص نختار خاصية lnteval ونكتب رقم 1 ثم ننقر على Timer ونكتب الكود التالي :

.vb.net
  

ProgressBar1.Increment(1)

If ProgressBar1.Value = 1 Then

btnUpdate.Text = "جاري التعديل"

btnUpdate.Enabled = False

End If


If ProgressBar1.Value = ProgressBar1.Maximum Then

Timer1.Stop()

ProgressBar1.Value =

btnUpdate.Text = " تعديل"

btnUpdate.Enabled = True

End If


If ProgressBar1.Value = 20 Then

btnUpdate.Text = "تم التعديل بنجاح"

End If

 شرح الكود

 ـ btnUpdate اسم Button وتم تغير اسمه في هذا الكود استخدمنه ثلاثه شروط من خلاله if شرطيه

   ➖ الشرط الاول عند الضغط على زر التعديل ستظهر كلمه جاري التعديل علئ زر تعديل طبعا سيختفي شرط الاول خلال جزء من ثانيه وينتقل إلى شرط ثاني وبنفس وقت خلينه قميه زر btnUpdate تساوي false

 ➖ شرط ثاني خلينه مؤقت يتوقف Timer1.Stop عندما يبدا العداد من 0 الئ ان يصل إلى 20 في شرط ثالث ➖ الشرط ثالث عندما يتم حفظ تعديل ثظهر رساله للمستخدم فيها تم تعديل البيانات بنجاح وبنفس وقت يتوقف العداد عندما يصل الى النهايه بوقت 20 اجراء من ثانيه

  ملاحظه

 يجب وضع كلمه( )Timer1.Start في زر التعديل حتى يبدا عمل الموقت عند ضغط على زر التعديل  شاهد صوره ادناه توضح كتابة كود Timer1

 صورة  توضح كود Timer (الموقت) المرتبط مع اداة progressBar برمجيا 

طريقة تصميم وبرمجة قاعده بيانات SQL server وربطها بالفيجوال بيسك


 فيديو توضيح عند تنفيذ البرنامج الخاص بالشاشة الاولى لبيانات الطالب وتجربه ازرار  ، الاضافة ، الحفظ ، التعديل ، البحث ، الحذف  ومشاهده البيانات محفوظه على sql server 




تعليقات