السلام عليكم ورحمه الله وبركاته ،
هذا احد الامثلة لدي قمت بعملها بنفسي ، ووضعت اليوم عليه بعض التطويرات البسيطة والمطلوب ان تقوموا بتقييم هذا المثال وطريقة كتابة الاكواد واستخدام كائنات ADO.NET فيه .
المثال يشتمل على :
- عمليات الاضافة والتعديل والحذف
- التنقل بين السجلات
- استخدام DataGrid لعرض السجلات والتنقل بينها
- عرض موقع السجل المعروض حاليا من اجمالي السجلات المستدعاه
:lol: :lol:
هنا نسخه من كود المثال كاملا :
Imports System.Data.OleDb
Public Class frmSample
Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Application.StartupPath & "\db.mdb")
Dim Da As New OleDbDataAdapter("SELECT * FROM Table1", Cn)
Dim Ds As New DataSet
Dim RowP As Integer = 0
Dim bAdd As Boolean
Private Sub Connect()
If Not Cn.State = ConnectionState.Open Then Cn.Open()
End Sub
Private Sub ViewRecord(ByVal RowN As Integer)
If Not Ds.Tables("Table1").Rows.Count < 0 Then
txtID.Text = Ds.Tables("Table1").Rows(RowN).Item("ID")
txtName.Text = Ds.Tables("Table1").Rows(RowN).Item("Name")
txtAge.Text = Ds.Tables("Table1").Rows(RowN).Item("Age")
End If
End Sub
Private Sub ViewPos()
If Not Ds.Tables("Table1").Rows.Count <= 0 Then
txtPos.Text = RowP + 1 & " From " & Ds.Tables("Table1").Rows.Count
Else
txtPos.Text = "There are now records in the Table ."
End If
End Sub
Private Sub Enable(ByVal Enable As Boolean)
With Me
.txtID.ReadOnly = True
.txtName.ReadOnly = Enable
.txtAge.ReadOnly = Enable
.btnMoveFrst.Enabled = Enable
.btnMoveLast.Enabled = Enable
.btnMoveNext.Enabled = Enable
.btnMovePrev.Enabled = Enable
.DataGridView1.Enabled = Enable
.txtLog.Enabled = Enable
.txtPos.Enabled = Enable
.btnAddNew.Enabled = Enable
.btnEdit.Enabled = Enable
.btnDel.Enabled = Enable
.btnSave.Enabled = Not Enable
.btnCancel.Enabled = Not Enable
If bAdd = True Then
.btnSave.Enabled = Not Enable
.btnCancel.Enabled = Not Enable
End If
If Ds.Tables("Table1").Rows.Count = 0 Then
.btnEdit.Enabled = False
.btnDel.Enabled = False
End If
Enable = Nothing
End With
End Sub
Private Sub frmSample_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Connect()
Da.Fill(Ds, "Table1")
ViewRecord(0)
ViewPos()
Enable(True)
DataGridView1.DataSource = Ds.Tables("Table1")
End Sub
Private Sub btnMoveFrst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMoveFrst.Click
txtLog.Text = ""
If Not Ds.Tables("Table1").Rows.Count = 0 Then
ViewRecord(0)
RowP = 0
Else
txtLog.Text = "There are no records to move to."
End If
ViewPos()
End Sub
Private Sub btnMovePrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMovePrev.Click
txtLog.Text = ""
If Not Ds.Tables("Table1").Rows.Count = 0 Then
Dim RowF As Integer
RowF = RowP - 1
If RowF < 0 Then
txtLog.Text = "There are no records to move to."
Else
RowP = RowF
ViewRecord(RowP)
End If
End If
ViewPos()
End Sub
Private Sub btnMoveNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMoveNext.Click
txtLog.Text = ""
If Not Ds.Tables("Table1").Rows.Count = 0 Then
Dim RowF As Integer
RowF = RowP + 1
If RowF > Ds.Tables("Table1").Rows.Count - 1 Then
txtLog.Text = "There are no records to move to."
Else
RowP = RowF
ViewRecord(RowP)
End If
End If
ViewPos()
End Sub
Private Sub btnMoveLast_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnMoveLast.Click
txtLog.Text = ""
If Not Ds.Tables("Table1").Rows.Count = 0 Then
RowP = Ds.Tables("Table1").Rows.Count - 1
ViewRecord(RowP)
End If
ViewPos()
End Sub
Private Sub btnAddNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddNew.Click
txtID.Text = ""
txtName.Text = ""
txtAge.Text = ""
bAdd = True
Enable(False)
End Sub
Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
Enable(False)
bAdd = False
End Sub
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
Enable(True)
ViewRecord(RowP)
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
Dim cmdB As New OleDbCommandBuilder(Da)
If bAdd = True Then
Dim addRow As DataRow
addRow = Ds.Tables("Table1").NewRow
addRow.Item("Name") = Trim(txtName.Text)
addRow.Item("Age") = Trim(txtAge.Text)
Ds.Tables("Table1").Rows.Add(addRow)
Da.Update(Ds, "Table1")
MsgBox("تمت عملية حفظ السجل الجديد المضاف")
Else
With Ds.Tables("Table1").Rows(RowP)
.Item("Name") = Trim(txtName.Text)
.Item("Age") = Trim(txtAge.Text)
End With
Da.Update(Ds, "Table1")
MsgBox("تمت عملية حفظ تعديلات السجل الحالي " & RowP)
End If
Enable(True)
ViewRecord(RowP)
End Sub
Private Sub btnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click
Try
If MsgBox("Are you shure ?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
Ds.Tables("Table1").Rows(RowP).Delete()
MsgBox("The Record " & RowP & " was deleted successfully")
RowP -= 1
ViewRecord(RowP)
End If
Catch ex As OleDbException
MsgBox(ex.Message)
End Try
End Sub
Private Sub DataGridView1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.Click
Dim rPos As Integer
rPos = DataGridView1.CurrentRow.Index
Try
ViewRecord(rPos)
ViewPos()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Classوكما قلت ارجو ابداء الرأي ، ماهي نقاط الضعف ان وجدت وما هي نقاط القوة ان وجدت ؟ وكيف يمكني التغلب على اي نقطة ضعف قد توجد وكيف يمكن تطوير اي جزء موجود فعليا من الكود ؟
أرجو ان لا تبخلو علي بالردود النافعة ودعوا عنكم ردود الشكر : رائع ، احسنت فهذه لا تغني ولا تسمن من جوع :rolleyes:
وبإنتظاركم : النبهاني :wacko: