اقتباسالسلام عليكم ورحمة الله وبركاتهابعث إليكم بعض ثمرة جهدنا وجهدكم وهو عبارة عن نسخة مصغرة عن منظومة ولكن مع اختلاف طبعا في المسميات الجداول والحقول والتي تبين كيفه التعامل مع "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