الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

العمليات على قاعدة بيانات sql

مغلق
بدأه حسن المنتصر في 28 يوليو 2005 · 13 رد · 1,455 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لقد قمت بتصميم هذه الشاشة على قاعدة بيانات sql وهذه أكواد الأوامر مرفقة

يوجد بقاعدة البيانات جدولين

الجدول الأول TBAdmin وهو جدول الإدارات ويحتوي على

admin=رقم الإدارة
name= إسم الإدارة

الجدول الثاني TBPart وهو جدول الأقسام ويحتوي على

 
admin= رقم الإدارة
part= رقم القسم
name= اسم القسم

يتم عرض الإدارات في combobox

يتم عرض الأقسام في listbox

في عملية البحث عن قسم يتم تصفية الأقسام حسب اختيارك للإدارة

أرجو من الإخوة إبداء الرأي و تصحيح الأخطاء البرمجية إن وجدت

حدث تحميل الفورم

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try

            Me.SqlCnn.ConnectionString = "workstation id=HASAN;packet size=4096;integrated security=SSPI;data source=HASAN;persist security info=False;initial catalog=Salary"
            Me.SqlCnn.Open()
            Me.SqlAdmin.Fill(Me.Data1, "TBAdmin")
            Me.SqlPart.Fill(Me.Data1, "TBpart")

        Catch ex As Exception
            MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

حدث الإضافة

Private Sub CmdAddnew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdAddnew.Click
        Try

            Me.BindingContext(Me.Data1, "TBPart").AddNew()
            Cmd(Me.Controls, False, True, False, False, False, True)

        Catch ex As Exception
            MessageBox.Show(ex.Message(), "", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

حدث التخزين

Private Sub CmdUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdUpdate.Click
        Try

            If TextBox1.TextLength.ToString = 0 Then
                MessageBox.Show("أدخل إسم القسم لو سمحت", "", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
                Me.TextBox1.SelectAll()
                Me.TextBox1.Focus()
                Exit Sub
            End If

            If MessageBox.Show("هل تريد بالتأكيد حفظ هذا السجل ؟", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign) = DialogResult.No Then Exit Sub
            Me.BindingContext(Me.Data1, "TBPart").EndCurrentEdit()
            Me.SqlPart.Update(Me.Data1, "TBPart")

            MessageBox.Show("تمت عملية حفظ السجل بنجاح", "", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)

            Me.ListBox1.Enabled = True
            Cmd(Me.Controls, True, False, True, False, False, False)

        Catch ex As Exception
            MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

حدث البحث

Private Sub CmdSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdSearch.Click
        Try
            Me.SqlPart.SelectCommand.CommandText = "SELECT * FROM TBPart WHERE Admin=" & Convert.ToString(Me.ComboBox1.SelectedValue)
            Me.SqlPart.SelectCommand.ExecuteNonQuery()
            Me.Data1.TBpart.Clear()
            Me.SqlPart.Fill(Me.Data1.TBpart)
            Me.ListBox1.Enabled = True
            Me.ListBox1.Focus()
            Cmd(Me.Controls, False, False, False, True, True, True)

        Catch ex As Exception
            MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try

حدث التعديل

Private Sub CmdEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdEdit.Click
        Try

            If TextBox1.TextLength.ToString = 0 Then
                MessageBox.Show("أدخل إسم القسم لو سمحت", "", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
                Me.TextBox1.SelectAll()
                Me.TextBox1.Focus()
                Exit Sub
            End If

            If MessageBox.Show("هل تريد بالتأكيد تعديل هذا السجل ؟", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign) = DialogResult.No Then Exit Sub
            Me.BindingContext(Me.Data1, "TBPart").EndCurrentEdit()
            Me.SqlPart.Update(Me.Data1, "TBPart")

            MessageBox.Show("تمت عملية التعديل السجل بنجاح", "", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)

            CmdUndo_Click(sender, e)

        Catch ex As Exception
            MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

حدث الحذف

Private Sub CmdDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdDelete.Click
        Try

            If MessageBox.Show("هل تريد بالتأكيد حذف هذا السجل ؟", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign) = DialogResult.No Then Exit Sub
            Me.BindingContext(Me.Data1, "TBPart").EndCurrentEdit()
            Me.BindingContext(Me.Data1, "TBPart").RemoveAt(Me.BindingContext(Me.Data1, "TBPart").Position)
            Me.SqlPart.Update(Me.Data1, "TBPart")
            MessageBox.Show("تمت عملية حذف السجل بنجاح", "", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)

            Cmd(Me.Controls, True, False, True, False, False, False)

        Catch ex As Exception
            MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

حدث التراجع

Private Sub CmdUndo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdUndo.Click
        Try

            Me.BindingContext(Me.Data1, "TBPart").CancelCurrentEdit()
            Me.SqlPart.SelectCommand.CommandText = "SELECT * FROM TBPart"
            Me.SqlPart.SelectCommand.ExecuteNonQuery()
            Me.Data1.TBpart.Clear()
            Me.SqlPart.Fill(Me.Data1.TBpart)
            Me.ListBox1.Enabled = False
            Cmd(Me.Controls, True, False, True, False, False, False)

        Catch ex As Exception
            MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

حدث إغلاق الفورم

Private Sub CmdExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdExit.Click
        Application.Exit()
    End Sub
#2

صورة الشاشة

w6w_20050727175701a06df170.jpg

#3

32 زائر ومافيش ولا مشاركة

#4

بارك الله فيك يا منتصر

وان شاء الله منتصر دائما

ولو عندك مشاريع علي نفس الشغل Command ده ياريت تحطها

#5

البرنامج هو جزء من منظومة اقوم بتحويلها من فيجوال 6 الى فيجوال نت

وكنت اشتغل على قاعدة بيانات access وقاعدة البيانات الحالية sql

#6

مشكور الأخ حسن المنتصر ...

حاليا اقوم بعمل connection باستخدام ادوات الفيجوال بدلاً من هذه الطريقة ...

في نظرك . ايها اكثر عملية وفائدة ...

#7

أخي أنا أقوم بالإتصال باستخدام ادوات الفيجوال و لكنني لست خبير فيجوال نت إنما أنا مبتدئ في هذه التقنية فقد انتقلت مؤخرا اليها

Me.SqlCnn.ConnectionString = "workstation id=HASAN;packet size=4096;integrated security=SSPI;data source=HASAN;persist security info=False;initial catalog=Salary"
           Me.SqlCnn.Open()

sqlcnn هو أداة SqlConnection ولكنني أحذف قيمة connectionstring منها وأقوم بإدراجها بالكود و على حد علمي فهي أفضل لأنك تستطيع التحكم بالإتصال لو حدث تغير في مسار قاعدة البيانات

ولكني أرى أن الأهم من ذلك هو استخدام خاصية command من داخل adapter وتفريغ data1>>dataset وملئها حسب التغير في قيمة commandtext

Me.SqlPart.SelectCommand.CommandText = "SELECT * FROM TBPart WHERE Admin=" & Convert.ToString(Me.ComboBox1.SelectedValue)
           Me.SqlPart.SelectCommand.ExecuteNonQuery()
           Me.Data1.TBpart.Clear()
           Me.SqlPart.Fill(Me.Data1.TBpart)

Me.SqlPart.SelectCommand.CommandText = "SELECT * FROM TBPart"
           Me.SqlPart.SelectCommand.ExecuteNonQuery()
           Me.Data1.TBpart.Clear()
           Me.SqlPart.Fill(Me.Data1.TBpart)

حيث انني وجدت في بعض المشاركات أن استخدام البحث يتم عن طريق تعريف command جديد و dataset جديدة

راجع الموضوع التالي

البحث في قاعدة بيانات

,,,,,,,,,,,,,,, والله اعلم ,,,,,,,,,,,,,,,,,

#8

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

اخي العزيز حسن المنتصر

هناك طريقة سهلة في الدوت نت تختصر عليك كتابة الكود، خصوصا في الاضافة والحذف والتعديل...

تعرف المتغير التالي

dim CM as CurrencyManager

ثم في حدث التحميل للفورم تكتب

Cm=BindingContext(Me.Data1, "TBPart")

وما عليك الا ان تفعل الاتي

cm.addnew

او

 cm.EndCurrentEdit

وهلم جرا...

وهكذا ، تختصر على نفسك كتابة الكود

اللهم لا سهل الا ماجعلته سهلا، وانت تجعل الصعب ان شئت سهلا

83_45a7168be2ddb.jpg

#9

شكرا لك أخي ساجرب هذه الطريقة

#10

الطريقة جيدة اخي لكن لا تعمل مع addnew

#11

شكرا لك أخي abetry الطريقة مفيدة جدا ونجحت تماما

#12

بارك الله فيكم علي هذة المعلومات المفيدة

يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل

سبحان الله وبحمده ... سبحان الله العظيم

#13

طريقة سهلة ، لكن هل تتطبق على VS2005 ?

#14

الحقيقة لاأعلم لأنني استخدمتها على 2003 ... جرب مش حتخسر حاجة

هذا الموضوع مغلق.

مواضيع مشابهة