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

استشارة ... الربط والاضافة والتعديل والالغاء

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

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

والإضافة والتعديل والإلغاء وهذا العمل و الانجاز الكبير بالنسبة لنا كمبتدئين والمتواضع بالنسبة لكم والذي حقيقتاً كان الفضل وكل الفضل للخبراء والمشرفين  علي هذا الموقع الرائع وجميع الأخوة الأعضاء والذي أتمنى منهم أسدا النصح لي وتبين

الأخطاء وشرح ما يمكن شرحه عن الاستخدام الأمثل لكائنات                      ADO.NET                                                             

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

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

أتمني منكم أبدا الرأي وانا متأكد انه ستعم الفائده للجميع وجزأكم الله  خيرا وجعلها في ميزان حسناتكم           

   
 Module Module1
    Public cn1 As New SqlConnection("workstation id=GENERAL;packet size=4096;integrated security=SSPI;data source=GENERAL;persist security info=False;initial catalog=BOX")
    Public adb As SqlDataAdapter
    Public cm1 As SqlCommand
   ' Public lost As Boolean
    Public WithEvents bmb As BindingManagerBase
    Public x1, x2, x3, x4, x5, x6, x7, x8, x9
    '=============================================
    Sub main()
        Try
            cn1.Open()
        Catch
            MessageBox.Show("Database Not available Or Not Existent", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning)
        End Try
        Dim frm As New Form1
        frm.ShowDialog()
    End Sub
End Module
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
استدعاء فك الربط                      
Private Sub clear_bmb()
        TextBox1.DataBindings.Clear()
        TextBox2.DataBindings.Clear()
        TextBox3.DataBindings.Clear()
        TextBox4.DataBindings.Clear()
        ComboBox2.DataBindings.Clear()
        DateTimePicker1.DataBindings.Clear()
    End Sub
استدعاء الربط                       
    Private Sub bild_bmb()
            TextBox1.DataBindings.Add("TEXT", ds, "pars.pars_no")
            TextBox2.DataBindings.Add("TEXT", ds, "pars.pars_name")
            TextBox3.DataBindings.Add("TEXT", ds, "pars.jop")
            TextBox4.DataBindings.Add("TEXT", ds, "pars.cont")
           DateTimePicker1.DataBindings.Add("value", ds, "pars.date_p")                                              ComboBox2.DataBindings.Add("SelectedValue", ds, "pars.num")  

    End Sub

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  Dim ds As New DataSet


form_load  في 


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

           
      adb = New SqlDataAdapter("select * from ct order by no", cn1)
            adb.Fill(ds, "par")
            ComboBox2.DataSource = ds
            ComboBox2.DisplayMember = "par.name"
            ComboBox2.ValueMember = "par.num"
            ComboBox2.DropDownStyle = ComboBoxStyle.DropDown

adb= New SqlDataAdapter("select * from pars order by pars_no", cn1)
        adb.Fill(ds, "pars")
            TextBox1.DataBindings.Add("TEXT", ds, "pars.pars_no")
            TextBox2.DataBindings.Add("TEXT", ds, "pars.pars_name")
            TextBox3.DataBindings.Add("TEXT", ds, "pars.jop")
            TextBox4.DataBindings.Add("TEXT", ds, "pars.cont")
            DateTimePicker1.DataBindings.Add("value", ds, "pars.date_p")                ComboBox2.DataBindings.Add("SelectedValue", ds, "pars.num")
           DataGrid1.SetDataBinding(ds, "pars")
            bmb = Me.BindingContext(ds, "pars")
            bmb.Position = 0
            DataGrid1.IsSelected(bmb.Position)

            Label1.Text = String.Format("{0} of {1}", bmb.Position + 1, bmb.Count) لمعرفة ترتيب السجل الحالي من بين مجموع السجلات 
            
    End Sub
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Private Sub next_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        bmb.Position += 1
    End Sub

    Private Sub parv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        bmb.Position -= 1
    End Sub
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
الاضافة
    Private Sub add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            clear_bmb()'استدعاء فك الربط 
        msg = MessageBox.Show("هل بالتاكيد تريد حفظ هذه البيانات ", "تاكيد الحفظ", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
        If msg = vbYes Then

    cm1 = New SqlCommand("insert into pars(pars_no,pars_name, jop,cont,date_p,num)values(@x1,@x2,@x3,@x4,@x5,@x6)",cn1)
                cm1.Parameters.Add("@x1", Trim(TextBox1.Text))
                cm1.Parameters.Add("@x2", Trim(TextBox2.Text))
                cm1.Parameters.Add("@x3", Trim(TextBox3.Text))
                cm1.Parameters.Add("@x4", Trim(TextBox4.Text))
                cm1.Parameters.Add("@x5", DateTimePicker1.Value)                
                cm1.Parameters.Add("@x6",Trim(ComboBox2.SelectedValue))
للترتيب السجلات من جديد 
                ds.Tables("pars").Clear()
adb = New SqlDataAdapter("select * from pars order by pars_no ", cn1)
                adb.Fill(ds, "pars")
                ds.Tables("pars").DefaultView.Sort = "pars_no ASC"
عرض السجل الذي تم ادخاله حاليا
bmb.Position = ds.Tables("pars").DefaultView.Find(Trim(TextBox1.Text))  
        Else
            bmb.CancelCurrentEdit()
        End If
        bild_bmb()'استدعاء ارجاع الربط
end sub
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Private Sub edit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

        msg = MessageBox.Show("هل بالتاكيد تريد حفظ هذه البيانات ", "تاكيد الحفظ", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
        If msg = vbYes Then
           ' Bar(ProgressBar1)
           ' I = bmb.Position
            cm1 = New SqlCommand("update pars set pars_no=@x1,PARS_NAME=@x2,jop=@x3, cont=@x4,num=@x5,date_p=@x6 where pars_no=@x1 ", cn1)
            cm1.Parameters.Add("@x1", TextBox1.Text)
            cm1.Parameters.Add("@x2", TextBox2.Text)
            cm1.Parameters.Add("@x3", TextBox3.Text)
            cm1.Parameters.Add("@x4", TextBox4.Text)
            cm1.Parameters.Add("@x5", Trim(ComboBox2.SelectedValue))
            cm1.Parameters.Add("@x6", DateTimePicker1.Value)
            ' Bar(ProgressBar1)
            cm1.ExecuteNonQuery()
           ' bmb.Position = I 
        Else
            bmb.CancelCurrentEdit()
        End If
    End Sub
+++++++++++++++++++++++++++++++++++++++++++++++++
Private Sub delete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
            Dim s As String = "delete from pars where pars_no=@x1"
            cm1 = New SqlCommand(s, cn1)
            cm1.Parameters.Add("@x1", TextBox1.Text)
            cm1.ExecuteNonQuery()
             bmb.RemoveAt(bmb.Position)
           ' ProgressBar1.Visible() = False
        End If

    End Sub

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

عمر المختار

اللهم انعم على بلادي بالأمن والأمان

#2

بارك الله فيك

ولكن اعتقد ان الكود يحتاج الى قليل من الشرح

وجزاك الله خيرا

#3

السلام عليكم

يا ريت مثال على الكود الموضوع لللاستفادة

اقتباس
ولكن أريد أن اتاكد هل الأساس الذي بدأت به صحيح وهل ينفع بي أذا تم استخدامه علي شبكه محلية ؟

في علمي ان في حالة العمل مع شبكة محلية و مع اكثر من مستخدم على الشبكة و باستخدام SQL server يبقى عليك بتعمل التعامل مع ADO.NET في وضع الانفصال (عدم الاتصال)

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

بالتــــــــــــــــوفيق اخي الكريم و للآمــــــــــــــــام دائما

تم تعديل هذه المشاركة بواسطة Wise في 11 نوفمبر 2005 في 07:42

#4

للرفع

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

عمر المختار

اللهم انعم على بلادي بالأمن والأمان

#5

كود رائع بصراحة وبداية قوية ،، وأرى أنك ممكن توفر على نفسك الوقت والكثير من الكود وتعمل ذلك مرئيا عند تصميم الفورم ،، لكن هذا الأسلوب يدل على الفهم الجيد

فلسطين الزاهية بألوان الحب والسلام

ذلك الطعم الزيتوني الذي يتدفق عسلاً من أفواه بساتينها وحدائقها

تشتاق إليها نفوس المتقين وترنوا للسجود فيها جباه المسلمين

#6

بارك الله فيك

1

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

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