اشترك معنا ليصلك جديد الدروس و الاعمال!

We'll

الأحد، 30 ديسمبر 2012

شرح تصميم مثال الصلاحيات

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


لنبدا على بركة الله افتح برنامج
Microsoft Visual Studio 2008
اختر مشروع جديد
WindowsApplication1
اضف عدد 6 نماذج= 6 forms
الاول وليكن اسمه = form1
اضف له الادوات اللازمة كما هو موضع بالصورة التالية:


مزيد من المعلومات

قم بالضغط على زر حفظ الكل ليتم انشاء  مجلد للمشروع ..الان قم بفتح مايكروسوفت اكسس 2007
قم بانشاء جدول جديد واسمه wanted انظر الصورة التالية

اضف الحقول كما ترى بالصورة تماما


انشيء جدول اخر واسمه
Fmembers


وجدول اخر اسمه
Fblocked
انظر الصورة التالية

وانشيء جدول ايضا وهو المهم واسمه
Fadmin


استعرض الصور بشكل منفصل عن البرنامج لرؤيتها بشكل اوضح

الان بقي علينا الربط لاننا عرفنا اسم قاعدة البيانات وهو db1.accdb
هذا باستخدام اكسس 2007 اما 2003 فهو
Db1.mdb

الان فنقل بشكل متاخر فكرة برنامجنا وهي
صورة شبيهه بدفتر العناوين واسمينا هذا الجدول المخصص باسم wanted
أي المطلوبين .
نريد الان الربط بهذا الجدول
نضيف موديول جديد وسمه constr  ونضيف به الجملة التالية
اعلى اطار الشيفرة اكتب
Imports System.Data.OleDb

ثم داخل الموديول بين جملتي
Module constr
و جملة
End Module

اكتب هذا الكود
    Public conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; data source= |datadirectory|\db1.accdb;Jet OLEDB:Database Password=vb4arab")
    Public ds1 As New DataSet
    Public sql1 As String = "select * from wanted"
    Public da1 As New OleDbDataAdapter(sql1, conn)

الان انتهينا من اهم خطوة بقيت خطوة الربط بالادوات
نذهب لحدث  Form1_Load
الخاص بنموذج او فورم اظهار محتوى القاعدة
ونكتب الكود التالي
        Try
            conn.Open()
            da1.Fill(ds1, "wanted")
            conn.Close()
            Me.txtname.DataBindings.Add("text", ds1, "wanted.txtname")

            Me.txtfather.DataBindings.Add("text", ds1, "wanted.txtfather")

            Me.txtgrand.DataBindings.Add("text", ds1, "wanted.txtgrand")

            Me.txtfamily.DataBindings.Add("text", ds1, "wanted.txtfamily")

            Me.txtqabilah.DataBindings.Add("text", ds1, "wanted.txtqabilah")

            Me.birthplace.DataBindings.Add("text", ds1, "wanted.birthplace")

            Me.birthdate.DataBindings.Add("text", ds1, "wanted.birthdate")

            Me.txtrecordno.DataBindings.Add("text", ds1, "wanted.txtrecordno")

            Me.txtnoteno.DataBindings.Add("text", ds1, "wanted.txtnoteno")

            Me.txtnotesource.DataBindings.Add("text", ds1, "wanted.txtnotesource")

            Me.txtnotedate.DataBindings.Add("text", ds1, "wanted.txtnotedate")

        Catch ex As Exception
            MsgBox(Err.Description, MsgBoxStyle.Critical)


        End Try

الان قم بتشغيل البرنامج لتجربته اذا كان عملك صحيحا فستظهر محتويات القاعدة ضمن الفورم الاول
اسماء مربعات النص مثل اسماء حقول القاعدة
لاحظها بنفسك
مثلا اردنا ربط مربع نص بحقل اسم نسمي مربع النص اسم   txtname  يجب ان يكون اسم الحقل بالقاعدة مثل هذا ليعمل الكود بشكل صحيح.
الان قم بالنقر على زر جديد لاضافة صف جديد ماذا يحدث
        Button2.Enabled = True
        Button3.Enabled = True
        Call opentxt()
        Button3.Select()

يقوم بتمكين زر الحفظ وزر محو النصوص بالمربعات
ثم يقوم باستدعاء دالة مخصصة opentxt

لنراها الان
Public Sub opentxt()
        Form1.txtname.ReadOnly = False
        Form1.txtfather.ReadOnly = False
        Form1.txtgrand.ReadOnly = False
        Form1.txtfamily.ReadOnly = False
        Form1.txtqabilah.ReadOnly = False
        Form1.birthplace.ReadOnly = False
        Form1.birthdate.ReadOnly = False
        Form1.txtrecordno.ReadOnly = False
        Form1.txtnoteno.ReadOnly = False
        Form1.txtnotesource.ReadOnly = False
        Form1.txtnotedate.ReadOnly = False

    End Sub


والباقي سهل
لننظر الى زر الحفظ
        Button2.Enabled = False
        Try

            Dim dRow As DataRow = ds1.Tables("wanted").NewRow
            dRow.Item(0) = txtname.Text
            dRow.Item(1) = txtfather.Text
            dRow.Item(2) = txtgrand.Text
            dRow.Item(3) = txtfamily.Text
            dRow.Item(4) = txtqabilah.Text
            dRow.Item(5) = birthplace.Text
            dRow.Item(6) = birthdate.Text
            dRow.Item(7) = txtrecordno.Text
            dRow.Item(8) = txtnoteno.Text
            dRow.Item(9) = txtnotesource.Text
            dRow.Item(10) = txtnotedate.Text
            ds1.Tables("wanted").Rows.Add(dRow)
            da1.Update(ds1, "wanted")

            MsgBox("تمت عملية الاضافة والحفظ في قاعدة البيانات بنجاح")
            Dim form1 As New Form1
            Me.Hide()
            form1.Show()

            Call closetxt()



        Catch ex As Exception
            MsgBox(Err.Description, MsgBoxStyle.Critical)
        End Try

هذه افضل طريقة للاضافة افضل من insertinto
لننظر الان الى زر الحذف
        Try
            If MsgBox("هل تريد حذف السجل الحالي", MsgBoxStyle.OkCancel) = MsgBoxResult.Cancel Then
                Exit Sub
            End If
            Dim SavInto As New OleDb.OleDbCommand
            SavInto.Connection = conn
            SavInto.CommandType = CommandType.Text
            SavInto.CommandText = "DELETE FROM wanted WHERE txtrecordno='" & txtrecordno.Text & "'"
            conn.Open()
            SavInto.ExecuteNonQuery()
            ds1.Clear()
            da1.Fill(ds1, "Tab1")
            conn.Close()
            MsgBox("تمت عملية الحذف في قاعدة البيانات بنجاح")
            Dim frm1 As New Form1
            Me.Hide()
            frm1.Show()
        Catch ex As Exception
            MsgBox(Err.Description, MsgBoxStyle.Critical, "error")
        End Try


هل رايت السهولة

ولننظر الى زر التعديل
        Dim frm3 As New form3
        frm3.txtname.Text = Me.txtname.Text

        frm3.txtfather.Text = Me.txtfather.Text


        frm3.txtgrand.Text = Me.txtgrand.Text


        frm3.txtfamily.Text = Me.txtfamily.Text


        frm3.txtqabilah.Text = Me.txtqabilah.Text


        frm3.birthplace.Text = Me.birthplace.Text


        frm3.birthdate.Text = Me.birthdate.Text


        frm3.txtrecordno.Text = Me.txtrecordno.Text


        frm3.txtnoteno.Text = Me.txtnoteno.Text


        frm3.txtnotesource.Text = Me.txtnotesource.Text


        frm3.txtnotedate.Text = Me.txtnotedate.Text

        frm3.lbl.Text = Me.txtrecordno.Text





        frm3.Show()
        Me.Hide()


فورم التعديل والذي اسميناه form3
انسخ كافة مربعات النص في الفورم الاول والصقها بفورم التعديل واضف زرين حفظ والغاء
بزر الحفظ اكتب
        Try

            Dim n As String = lbl.Text
            Dim SavInto As New OleDb.OleDbCommand
            SavInto.Connection = conn
            SavInto.CommandType = CommandType.Text
            SavInto.CommandText = "UPDATE wanted SET txtname = '" & Trim(txtname.Text) & "' , txtfather = '" & Trim(txtfather.Text) & "' , txtgrand= '" & Trim(txtgrand.Text) & "' , txtfamily= '" & Trim(txtfamily.Text) & "' , txtqabilah= '" & Trim(txtqabilah.Text) & "' , birthplace= '" & Trim(birthplace.Text) & "' , birthdate= '" & Trim(birthdate.Text) & "' , txtrecordno= '" & Trim(txtrecordno.Text) & "' , txtnoteno= '" & Trim(txtnoteno.Text) & "' , txtnotesource= '" & Trim(txtnotesource.Text) & "' , txtnotedate= '" & Trim(txtnotedate.Text) & "' WHERE txtrecordno ='" & n & "'"

            conn.Open()
            SavInto.ExecuteNonQuery()
            da1.Update(ds1, "wanted")
            conn.Close()
            MsgBox("تمت عملية التعديل والحفظ في قاعدة البيانات بنجاح")

            frm.Show()
            Me.Close()

        Catch ex As Exception
            conn.Close()
            MsgBox(Err.Description, MsgBoxStyle.Critical)
        End Try


    End Sub


في الفورم الاول نريد برمجة ازرار التنقل
كود زر الاول
        Me.BindingContext(ds1, "wanted").Position = 0
كود زر الاخير
        Me.BindingContext(ds1, "wanted").Position = Me.BindingContext(ds1, "wanted").Count - 1


السابق
        Me.BindingContext(ds1, "wanted").Position -= 1
التالي
        Me.BindingContext(ds1, "wanted").Position += 1


عدد السجلات

        MsgBox(Me.BindingContext(ds1, "wanted").Count, MsgBoxStyle.Exclamation)


الان لنقم بالبدء بشغلتنا الرئيسية وهي
المستخدمين وصلاحياتهم
اتذكر ان هناك جدول اسمه
Fmembers
اذا نريد اضافة عضوية بالنقر على اداة تسجيل عضوية جديدة الموجودة ضمن الفورم الاول
انقر عليها نقرا مزدوجا واكتب بحدثها
        addmember.Show()
        Me.Hide()

اضف فورم وليكن اسمه
Addmember.vb
واضف الادوات اللازمة ليصبح هكذا


اسم المربع الاول
Txtusername
الثاني
Txtpassword
الثالث
Txtpassword1
لنرى زر تسجيل
        If txtusername.Text = "" Or txtpassword.Text = "" Or txtpassword1.Text = "" Then
            MsgBox("يجب ادخال قيم مقبولة", MsgBoxStyle.Exclamation, "خطأ")
            Exit Sub

        ElseIf txtpassword.Text <> txtpassword1.Text Then
            MsgBox("كلمات المرور غير متوافقة")
            Exit Sub

        End If
طبعا واضح لايحتاج الى شرح

الكود التالي يقوم بفحص القاعدة وجدول الاعضاء هل الاسم المختار موجود او لا
        Dim issql As String = "select * from fmembers where fusername='" & Me.txtusername.Text & "'"
        Dim isds As New DataSet
        Dim isda As New OleDb.OleDbDataAdapter(issql, conn)
        isda.Fill(isds, "fmembers")
        If Me.BindingContext(isds, "fmembers").Count > 0 Then
            MsgBox("اسم المستخدم قيد الاستخدام جرب آخر", MsgBoxStyle.Critical, "خطا")
            Exit Sub
        End If
فلنركز على هذا السطر
        If Me.BindingContext(isds, "fmembers").Count > 0 Then

انظر لعلامة اكبر من >0   وافهمها
            MsgBox("اسم المستخدم قيد الاستخدام جرب آخر", MsgBoxStyle.Critical, "خطا")
            Exit Sub
        End If
واضحة

بعدها استدعينا دالة الحفظ
doregister()

لنكشفها
Try
            Dim regsql As String = "select * from fmembers"
            Dim n As String
            Dim regds As New DataSet
            Dim regda As New OleDb.OleDbDataAdapter(regsql, conn)
            Dim CmdB As New OleDb.OleDbCommandBuilder(regda)

            regda.Fill(regds, "fmembers")
            n = Encrypt(addmember.txtpassword.Text, "85*wqbhtmaswdf654789lop")
            Dim dRow As DataRow = regds.Tables("fmembers").NewRow


            dRow.Item(0) = addmember.txtusername.Text
            dRow.Item(1) = n

            regds.Tables("fmembers").Rows.Add(dRow)
            regda.Update(regds, "fmembers")

            MsgBox("تم التسجيل بنجاح")
        Catch ex As Exception
            MsgBox(Err.Description, MsgBoxStyle.Critical, "error")
        End Try

وبعدها الاجراء العادي
        login.Show()
        Me.Hide()
بعد الاضافة يقوم بالتوجه الى شاشة الدخول
انظر الصورة التالية


لنرى زر دخول
        Dim n As String
        Try
            n = Encrypt(Me.txtpassword.Text, "85*wqbhtmaswdf654789lop")


            Dim sqlstr1 As String = "SELECT * FROM fmembers WHERE fUserName= '" & txtusername.Text & "' and fPassword='" & n & "'"
            Dim mblocked As String = "select * from fblocked where fUserName='" & txtusername.Text & "'"
            Dim madmin As String = "select * from fadmin where fUserName='" & txtusername.Text & "'"


            Dim mblockedds As New DataSet
            Dim mblockeddsda As New OleDb.OleDbDataAdapter(mblocked, conn)
            mblockeddsda.Fill(mblockedds, "fblocked")



            Dim madminds As New DataSet
            Dim madminda As New OleDb.OleDbDataAdapter(madmin, conn)
            madminda.Fill(madminds, "fadmin")






            Dim dataset1 As New DataSet
            Dim dataadapter1 As New OleDb.OleDbDataAdapter(sqlstr1, conn)
            dataadapter1.Fill(dataset1, "fmembers")
            If Me.BindingContext(dataset1, "fmembers").Count = 0 Then
                With lblmsg
                    .ForeColor = Color.Red
                End With
                lgist()
                lblmsg.Text = "عفوا بيانات دخولك خاطئة ستدخل بصفة ضيف"
                Timer1.Enabled = True



            Else
                If Me.BindingContext(mblockedds, "fblocked").Count > 0 Then
                    lblmsg.ForeColor = Color.Red
                    lblmsg.Text = "عفوا قامت الادارة بحظرك.....راجع المدير"
                    Exit Sub
                ElseIf Me.BindingContext(madminds, "fadmin").Count > 0 Then
                    ladmin()
                    Form1.Show()


                ElseIf Me.BindingContext(dataset1, "fmembers").Count > 0 Then
                    lmember()
                    Form1.Show()

                End If

            End If
        Catch ex As Exception
            Dim msb As String = "عفوا يوجد خطا ورقم الخطأ هو  " & "  " & Err.Number & "  "
            Dim mss As String = "ونص الخطا هو  " & Err.Description
            MsgBox(msb + mss, MsgBoxStyle.Critical)


        End Try


لن اشرح الكود وانما ساشرح الفكرة
الفكرة هي ان الذي يسجل الدخول للبرنامج وقاعدة البيانات
اما ضيف او عضو او محظور او مشرف
الان الكود مرة اخرى كود الدخول
طبعا لايوجد حقل للضيف في القاعدة وانما ان لم يوجد الاسم ضمن الاعضاء fmembers
فمعناه بكل بساطة انه ضيف وهذا الكود
            Dim dataset1 As New DataSet
            Dim dataadapter1 As New OleDb.OleDbDataAdapter(sqlstr1, conn)
            dataadapter1.Fill(dataset1, "fmembers")
            If Me.BindingContext(dataset1, "fmembers").Count = 0 Then
                With lblmsg
                    .ForeColor = Color.Red
                End With
                lgist()
                lblmsg.Text = "عفوا بيانات دخولك خاطئة ستدخل بصفة ضيف"
                Timer1.Enabled = True

ان كان ضيفا يتم استدعاء دالة    
Lgist
لنكشف هذه الدالة

Form1.grtool.Enabled = False
        Form1.rcount.Enabled = False
        Form1.lmng.Enabled = False
        Form1.GroupBox3.Enabled = True
        Form1.lregister.Enabled = True
اكتشفها بنفسك
Lmng
هذا يؤدي للادارة وهو ممنوع للضيوف
لايستطيع الا التصفح فقط


وان كان من الاعضاء المحظورين  تظهر له رسالة انه تم حظره ويوقف البرنامج
                If Me.BindingContext(mblockedds, "fblocked").Count > 0 Then
                    lblmsg.ForeColor = Color.Red
                    lblmsg.Text = "عفوا قامت الادارة بحظرك.....راجع المدير"
                    Exit Sub
  

وان كان من المدراء او المشرفين
                ElseIf Me.BindingContext(madminds, "fadmin").Count > 0 Then
                    ladmin()
                    Form1.Show()

يتم استدعاء دالة 
Ladmin

لنكشف هذه الدالة
        Form1.grtool.Enabled = True
        Form1.rcount.Enabled = True
        Form1.GroupBox3.Enabled = True
        Form1.lmng.Enabled = True
يتم فتح وتمكين كل الازرار
ومن ضمنها زر الادارة

وان كان من الاعضاء

                ElseIf Me.BindingContext(dataset1, "fmembers").Count > 0 Then
                    lmember()
                    Form1.Show()
يتم استدعاء دالة

Lmember

لنكشف هذه الدالة

        Form1.grtool.Enabled = True
        Form1.rcount.Enabled = True
        Form1.lmng.Enabled = False
        Form1.GroupBox3.Enabled = True
        Form1.lregister.Enabled = True
        Form1.bttnedit.Enabled = False
        Form1.bttndelet.Enabled = False




الان انتهينا بحمد الله من تكويد شاشة الدخول

انقر زر الادارة بعد ان تضيف فورم باسم
Mng
اكتب بداخل زر الادارة الكود التالي
        MNG.Show()
        Me.Hide()

اضف الادوات لفورم الادارة ليصبح هكذا انظر الصورة


Combobox=cb1
Listbox=lb1
 ليتم ملء اداة الكمبوبوكس باسماء الجداول اكتب بحدث mng_load
الكود التالي
Try
            Dim sql1 As String = "select * from fmembers"
            Dim ds1 As New DataSet
            Dim da1 As New OleDb.OleDbDataAdapter(sql1, conn)
            da1.Fill(ds1, "fmembers") : da1.Fill(ds1, "fadmin") : da1.Fill(ds1, "fblocked")

            Dim dt As DataTable
            cb1.Items.Clear()
            For Each dt In ds1.Tables
                cb1.Items.Add(dt.TableName)
            Next
            If cb1.Items.Count = 0 Then
                cb1.Items.Add("<none>")
            End If

        Catch ex As Exception
            MsgBox(Err.Description, MsgBoxStyle.Critical)
        End Try
كل مجموعات الاعضاء سيتم اضافتها لاداة الكمبوبوكس اثناء بدء التشغيل

لناتي الى حدث
cb1_SelectedIndexChanged
cb1=combobox1
ونضيف الكود التالي


Try

            Select Case cb1.Text
                Case "fmembers"
                    Dim dss As New DataSet
                    Dim Sql = "select * from fmembers"
                    Dim daa As New OleDb.OleDbDataAdapter(Sql, conn)
                    dss.Clear()
                    daa.Fill(dss, "fmembers")
                    lb1.DataSource = dss.Tables(0)
                    lb1.DisplayMember = "fusername"
                    lb1.ValueMember = "fusername"

                Case "fadmin"

                    Dim dss As New DataSet
                    Dim Sql = "select * from fadmin"
                    Dim daa As New OleDb.OleDbDataAdapter(Sql, conn)
                    dss.Clear()
                    daa.Fill(dss, "fadmin")
                    lb1.DataSource = dss.Tables(0)
                    lb1.DisplayMember = "fusername"
                    lb1.ValueMember = "fusername"
                Case "fblocked"

                    Dim dss As New DataSet
                    Dim Sql = "select * from fblocked"
                    Dim daa As New OleDb.OleDbDataAdapter(Sql, conn)
                    dss.Clear()
                    daa.Fill(dss, "fblocked")
                    lb1.DataSource = dss.Tables(0)
                    lb1.DisplayMember = "fusername"
                    lb1.ValueMember = "fusername"





            End Select

        Catch ex As Exception
            MsgBox(Err.Description, MsgBoxStyle.Critical)
        End Try
هذه جملة select case
بمعنى اذا تم انتقاء أي بند من البنود يتم ملء اداة القائمة lb1 بمحتويات ذلك البند او الجدول


لناتي الى حدث
lb1_SelectedIndexChanged
lb1=listbox1
لنرى الكود
Try

            Select cb1.Text

                Case "fmembers"


                    Dim x As String = lb1.SelectedValue.ToString

                    Dim sq As String = "select * from fmembers where fusername='" & x & "'"
                    Dim dapter As New OleDb.OleDbDataAdapter(sq, conn)
                    Dim ds As New DataSet
                    dapter.Fill(ds, "fmembers")

                    TextBox1.DataBindings.Add("text", ds, "fmembers.fusername")
                    TextBox2.DataBindings.Add("text", ds, "fmembers.fpassword")

                    TextBox1.DataBindings.Clear()
                    TextBox2.DataBindings.Clear()


                Case "fadmin"

                    Dim x As String = lb1.SelectedValue.ToString

                    Dim sq As String = "select * from fadmin where fusername='" & x & "'"
                    Dim dapter As New OleDb.OleDbDataAdapter(sq, conn)
                    Dim ds As New DataSet
                    dapter.Fill(ds, "fadmin")

                    TextBox1.DataBindings.Add("text", ds, "fadmin.fusername")
                    TextBox1.DataBindings.Clear()


                Case "fblocked"

                    Dim x As String = lb1.SelectedValue.ToString

                    Dim sq As String = "select * from fblocked where fusername='" & x & "'"
                    Dim dapter As New OleDb.OleDbDataAdapter(sq, conn)
                    Dim ds As New DataSet
                    dapter.Fill(ds, "fblocked")


                    TextBox1.DataBindings.Add("text", ds, "fblocked.fusername")
                    TextBox1.DataBindings.Clear()


            End Select
        Catch ex As Exception
            MsgBox(Err.Description, MsgBoxStyle.Critical)
        End Try



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

والاخر نقوم بفك التشفير
في حدث مربع النص المخصص لاظهاء اسم المستخدم ضمن حدث
TextBox1_TextChanged

اكتب الكود التالي
        TextBox4.Text = TextBox1.Text
ومربع كلمة المرور ايضا نفس الطريقة لكن
هناك مسالة فك التشفير
        Dim n As String
        n = Decrypt(TextBox2.Text, "85*wqbhtmaswdf654789lop")
        TextBox3.Text = n
الازرار الاخرى معروفة
ولكن ساتطرق الى ازرار الحظر وفك الحظر وتعيين مشرف والغاء من الاشراف

انظر الكود التالي كاملا
        Dim mblocked As String = "select * from fblocked where fUserName='" & TextBox4.Text & "'"



        Dim madmin As String = "select * from fadmin where fUserName='" & TextBox4.Text & "'"
        Dim madminds As New DataSet
        Dim madminda As New OleDb.OleDbDataAdapter(madmin, conn)
        madminda.Fill(madminds, "fadmin")
        If Me.BindingContext(madminds, "fadmin").Count > 0 Then
            If MsgBox("اذا قمت بحذف الاداري هذا فلن تستطيع او هو يستطيع الدخول للادارة...........هل انت متاكد ان لديك عضويات اشراف اخرى وتريد حذف هذا العضو او التعديل سيتم الحفظ اذا اخترت نعم ويغلق البرنامج هل انت موافق؟", MsgBoxStyle.YesNo + MsgBoxStyle.Critical, "تحذير") = MsgBoxResult.No Then Exit Sub

        End If




        If MsgBox("هل انت متاكد انك تريد حظر هذا العضو؟ بعد الحظر لن يتمكن من استخدام البرنامج", MsgBoxStyle.YesNo + MsgBoxStyle.Critical) = MsgBoxResult.No Then Exit Sub

        Try
            Dim regsql As String = "select * from fblocked"
            Dim regds As New DataSet
            Dim regda As New OleDb.OleDbDataAdapter(regsql, conn)
            Dim CmdB As New OleDb.OleDbCommandBuilder(regda)

            regda.Fill(regds, "fblocked")

            Dim doblods As New DataSet
            Dim doblocda As New OleDb.OleDbDataAdapter(mblocked, conn)
            doblocda.Fill(doblods, "fblocked")
            If Me.BindingContext(doblods, "fblocked").Count > 0 Then
                MsgBox("هذا العضو قيد الحظر سابقا", MsgBoxStyle.Exclamation)
                Exit Sub
            End If

            Dim dRow As DataRow = regds.Tables("fblocked").NewRow


            dRow.Item(0) = Me.TextBox4.Text

            regds.Tables("fblocked").Rows.Add(dRow)
            regda.Update(regds, "fblocked")

            MsgBox("تم حظر هذا الشخص بنجاح")
        Catch ex As Exception
            MsgBox(Err.Description, MsgBoxStyle.Critical, "error")
        End Try

ولالغاء الحظر انظر الكود التالي

Try
            Dim madmin As String = "select * from fblocked where fUserName='" & TextBox4.Text & "'"
            Dim madminds As New DataSet
            Dim madminda As New OleDb.OleDbDataAdapter(madmin, conn)
            madminda.Fill(madminds, "fblocked")

            If MsgBox("هل انت متاكد من الغاء حظر هذا العضو؟", MsgBoxStyle.YesNo + MsgBoxStyle.Critical) = MsgBoxResult.No Then Exit Sub

            Dim SavInto As New OleDb.OleDbCommand
            SavInto.Connection = conn
            SavInto.CommandType = CommandType.Text
            SavInto.CommandText = "DELETE FROM fblocked WHERE fusername='" & TextBox4.Text & "'"
            conn.Open()
            SavInto.ExecuteNonQuery()
            ds1.Clear()
            da1.Fill(ds1, "fblocked")
            conn.Close()
            MsgBox("تم الغاء حضر العضو بنجاح")

        Catch ex As Exception
            MsgBox(Err.Description, MsgBoxStyle.Critical)
        End Try



كود تعيين كمدير
        Dim mblockedstr As String = "select * from fblocked where fUserName='" & TextBox4.Text & "'"
        Dim mblockedds As New DataSet
        Dim mblockedda As New OleDb.OleDbDataAdapter(mblockedstr, conn)
        mblockedda.Fill(mblockedds, "fblocked")
        If Me.BindingContext(mblockedds, "fblocked").Count > 0 Then
            MsgBox("هذا العضو ضمن قائمة الحضر ولايمكن تعيينه كمدير")

            Exit Sub
        End If







        Dim madmin As String = "select * from fadmin where fUserName='" & TextBox4.Text & "'"
        Dim madminds As New DataSet
        Dim madminda As New OleDb.OleDbDataAdapter(madmin, conn)
        madminda.Fill(madminds, "fadmin")
        If Me.BindingContext(madminds, "fadmin").Count > 0 Then
            If MsgBox(" هذا العضو موجود ضمن قسم الادارة سابقا", MsgBoxStyle.YesNo + MsgBoxStyle.Critical, "تحذير") = MsgBoxResult.No Then Exit Sub
            Exit Sub
        End If
        Try
            Dim regsql As String = "select * from fadmin"
            Dim regds As New DataSet
            Dim regda As New OleDb.OleDbDataAdapter(regsql, conn)
            Dim CmdB As New OleDb.OleDbCommandBuilder(regda)

            regda.Fill(regds, "fadmin")

            Dim doblods As New DataSet
            Dim doblocda As New OleDb.OleDbDataAdapter(regsql, conn)
            doblocda.Fill(doblods, "fadmin")
            Dim dRow As DataRow = regds.Tables("fadmin").NewRow


            dRow.Item(0) = Me.TextBox4.Text

            regds.Tables("fadmin").Rows.Add(dRow)
            regda.Update(regds, "fadmin")

            MsgBox("تم تعيين هذا العضو كمشرف")
        Catch ex As Exception
            MsgBox(Err.Description, MsgBoxStyle.Critical, "error")
        End Try


هذا كود الحذف من الادارة
        Try
            Dim madmin As String = "select * from fadmin where fUserName='" & TextBox4.Text & "'"
            Dim madminds As New DataSet
            Dim madminda As New OleDb.OleDbDataAdapter(madmin, conn)
            madminda.Fill(madminds, "fadmin")

            If MsgBox("هل انت متاكد من الغاء  هذا العضو من الادارة؟", MsgBoxStyle.YesNo + MsgBoxStyle.Critical) = MsgBoxResult.No Then Exit Sub

            Dim SavInto As New OleDb.OleDbCommand
            SavInto.Connection = conn
            SavInto.CommandType = CommandType.Text
            SavInto.CommandText = "DELETE FROM fadmin WHERE fusername='" & TextBox4.Text & "'"
            conn.Open()
            SavInto.ExecuteNonQuery()
            ds1.Clear()
            da1.Fill(ds1, "fadmin")
            da1.Update(ds1, "fadmin")
            conn.Close()
            MsgBox("تم الغاءالعضو من الادارة بنجاح")

        Catch ex As Exception
            MsgBox(Err.Description, MsgBoxStyle.Critical)
       
End Try



تم بحمد الله الانتهاء من الشرح المبسط واليسير................مع خالص تحياتي محبكم / سعود
عضو منتدى فيجوال بيسك العرب

Socializer Widget By My Blogger Widgets
SOCIALIZE IT →
FOLLOW US →
SHARE IT →

0 التعليقات:

إرسال تعليق