Sql connexion wizard

بسم الله الرحمن الرحيم
في هذا الموضوع سوف نرى بحول الله كيفية عمل Wizard لإنشاء اتصال بين قواعد البيانات SQL SERVER ومشروع فيجوال بيزك 2015 
أولا ننشأ مشروع جديد ونسميه على بركة الله  Connexion
نعطي للفورم من خلال خاصية Size المقاسات التالية : 585 في الطول و 370 في الإرتفاع 
نضيف إلى الفورم GroupBox، وفي داخلها نظيف الأدوات التالية :
5 Label
2 RadioButton
2 ComboBox
2 TextBox
زر لتجربة الإتصال وزر للخروج وزر للحفظ

نسمي الأدوات ونرتبها كما هو مبين في الصورة التالية :

هذا الجانب التصميمي للفورم، والآن نبدأ على بركة الله بالجانب البرمجي :
1- نضغط على الزر الأيسر للفأرة على اسم المشروع ثم نختار خصائص من النافذة المنبثقة، ولما تنفتح فافدة الخصائص نختار 
تبويب Setting ونضيف الإعدادات التالية كما هو مبين في الصورة أدناه


2- نضغط Double click على الفورم لتضهر نافذة الكود وفي الأعلى نجلب مجالات الأسماء التالية :
Imports System.Data.SqlClient
Imports System.IO
Imports Microsoft.SqlServer.Management.Common
Imports Microsoft.SqlServer.Management.Smo
Imports System.DirectoryServices.ActiveDirectory
Imports System.DirectoryServices
أكيد راح معالج الكود يضع أسطر حمراء على بعض المجالات لأننا لم نضفها في Reference
مرة ثانية نضغط على الزر الأيسر للفأرة على اسم المشروع ثم نختار ADD ثم Reference وفي تبويب Framwork نبحث على System.DirectoryServices ونفعلها لأنها قد تكون غير مفعلة .
ثم من تبويب Browse نضغط على زر Browse ليفتح نافذة OpenFils ونجلب هذان الملفان 
أ- Microsoft.SqlServer.Configuration.ConnectionInfo.dll يمكنك تحميله من هنا 
ب- Microsoft.SqlServer.Configuration.SqlEnum.dll يمكنك تحميله من هنا 

نضغط على زر ADD ثم على رز OK 
3- في أعلى الكلاس نعلن النتغيرات التالية : 
    Dim sqlconn As New SqlClient.SqlConnection
    Dim sql As String = ""
    Dim con, con1 As SqlConnection
    Dim cmd As SqlCommand
    Dim dread As SqlDataReader

4- في داخل الكلاس تكتب الإجراءات التالية :
A- 
  Sub server(ByVal str As String)
        con = New SqlConnection("Data Source=" & str & ";Database=Master;integrated security=SSPI;")
        con.Open()
        cmd = New SqlCommand("select *  from sysservers where srvproduct='SQL Server'", con)
        dread = cmd.ExecuteReader
        While dread.Read
            cmbServerName.Items.Add(dread(2))
        End While
        dread.Close()
    End Sub

B-
  Sub connection()
        con = New SqlConnection("Data Source=" & Trim(cmbServerName.Text) & ";Database=Master;integrated security=SSPI;")
        con.Open()
        Cbo_DB_Name.Items.Clear()
        cmd = New SqlCommand("select * from sysdatabases", con)
        dread = cmd.ExecuteReader
        While dread.Read
            Cbo_DB_Name.Items.Add(dread(0))
        End While
        dread.Close()
    End Sub

هذا الإجراء سوف يملأ  Cbo_DB_Name بكل الداتابيز الموجودة على السيرفر الذي نختاره من cmbServerName كما سترى في الصورة الآخيرة

5- نضغط Double click على زر Btn_Serveur ونتكب الكود التالي :
  cmbServerName.Items.Clear()
        server(".")

6- في حدث الـ: SelectedIndexChanged لأداة cmbServerName ننادي إجراء  connection كما يلي :       connection() 

7-  نضغط Double click على زر Btn_Teste ونتكب الكود التالي ليقوم بتجربة فتح الإتصال مع قاعدة االبيانات التي تختارها من Cbo_DB_Name ثم تظهر رسالة النتيجة إن كان الإتصال ناجح أم لا
الكود هو :
        If cmbServerName.Text.Trim = "" Then
            MsgBox("Server Name Required...", MsgBoxStyle.Critical, "message")
            cmbServerName.Focus()
            Exit Sub
        End If

        If Cbo_DB_Name.Text.Trim = "" Then
            MsgBox("Database Name Required...", MsgBoxStyle.Critical, "message")
            Cbo_DB_Name.Focus()
            Exit Sub
        End If
        If RD_Win_Mode.Checked = True Then
            sql = "Server=" & cmbServerName.Text & ";Database=" & Cbo_DB_Name.Text & ";integrated security=true"
        Else
            sql = "Server=" & cmbServerName.Text & ";Database=" & Cbo_DB_Name.Text & ";integrated security=false;User Id=" & txtUserName.Text.Trim & ";Password=" & txt_Login_PW.Text.Trim
        End If
        If sqlconn.State = 1 Then sqlconn.Close()
        sqlconn.ConnectionString = sql

        Try
            sqlconn.Open()
                  MsgBox("Le teste de la connexion a réussi.", MsgBoxStyle.Information, "Connexion au Serveur")
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Connexion au Serveur", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
            sqlconn.Close()
        End Try

8-  نضغط Double click على زر Btn_Save ونكتب كود الحفظ التالي :
  If txtUserName.Text = "" Or txt_Login_PW.Text = "" Then
            MsgBox("Veuiller remplir les champs ondiquer en Rouges")
            txtUserName.BackColor = Color.Red
            txt_Login_PW.BackColor = Color.Red
            Exit Sub
        End If
        My.Settings.Server = cmbServerName.Text.Trim
        My.Settings.DataBase = Cbo_DB_Name.Text.Trim
        If RD_SQL_Mode.Checked = True Then
            My.Settings.Mode = "SQL"
        Else
            My.Settings.Mode = "Windows"
        End If
        My.Settings.SQL_ID = txtUserName.Text
        My.Settings.SQL_PW = txt_Login_PW.Text
        My.Settings.Save()
        MsgBox("Server = " + My.Settings.Server + " Base de Données = " + My.Settings.DataBase + " SQL ID = " + My.Settings.SQL_ID + " SQL PW = " + My.Settings.SQL_PW)
        MsgBox("Connexion bien configurée, El-Souck Doit être Fermer veuillez le Lancer.")
        End

9- نضغط Double click على زر َBtn_Close ونتكب كود الإغلاق Close()
10- نعمل رن ونجرب كما هو في الصورة التوضيحية 



أرجوا أن أكون قد وفقت والشكر الكبير بعد الله للأستاذ عثمان خوريشد 
لا تنسونا بالدعاء

Commentaires

Posts les plus consultés de ce blog