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

مثال بسيط للعمليات الأساسية على قواعد البيانات في VB.NET - مطلوب تقييمكم

مغلق
بدأه النبهاني في 3 يناير 2007 · 5 رد · 2,019 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هذا احد الامثلة لدي قمت بعملها بنفسي ، ووضعت اليوم عليه بعض التطويرات البسيطة والمطلوب ان تقوموا بتقييم هذا المثال وطريقة كتابة الاكواد واستخدام كائنات ADO.NET فيه .

المثال يشتمل على :

  1. عمليات الاضافة والتعديل والحذف
  2. التنقل بين السجلات
  3. استخدام DataGrid لعرض السجلات والتنقل بينها
  4. عرض موقع السجل المعروض حاليا من اجمالي السجلات المستدعاه

: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:

DataBaseSample.rar

#2

أخي لا تزعل مني ومن صراحتي ، والله الكود رائع ، ويدل على فهم لا بأس به ببرمجة قواعد البيانات ، ولكني أعتقد أنك مازلت تتبع نفس الأسلوب الذي كنا نتبعه في تقنية ADO التابعة لـ VB6 ..

وفي إعتقادي أنه بواسطة ADO.NET يمكن القيام بمثال هذا المثال بدون الإطالة التي توجد في الكود الذي قدمته لنا ، وذلك من خلال الكائن BindingSource وغيره من الكائنات ..

لذا أسمحلي أدعوك لمتابة الدرس الذي أقدمه بخصوص ADO.NET ..

على الرابط التالي ..

/index.php?showtopic=115282

;)

تم تعديل هذه المشاركة بواسطة yaseralshikh في 4 يناير 2007 في 04:18

1 - سقوط الإنسان ليس فشلاً ، ولكن الفشل أن يبقى حيث سقط .

2 - الفاشلون قسمان : قسم فكر ولم يفعل ، وقسم فعل ولم يفكر .

-------------------------------------------------------

درس في ADO.NET 2005, التعامل مع الجداول المترابطة في ado.net 2005

درس في الإجراءات الفرعية ( العامة )

درس في ADO.NET من الصفر إلى الإحتراف .

#3
yaseralshikh كتب:
أخي لا تزعل مني ومن صراحتي ، والله الكود رائع ، ويدل على فهم لا بأس به ببرمجة قواعد البيانات ، ولكني أعتقد أنك مازلت تتبع نفس الأسلوب الذي كنا نتبعه في تقنية ADO التابعة لـ VB6 ..

وفي إعتقادي أنه بواسطة ADO.NET يمكن القيام بمثال هذا المثال بدون الإطالة التي توجد في الكود الذي قدمته لنا ، وذلك من خلال الكائن BindingSource وغيره من الكائنات ..

لذا أسمحلي أدعوك لمتابة الدرس الذي أقدمه بخصوص ADO.NET ..

على الرابط التالي ..

/index.php?showtopic=115282

;)

شكرا لك أخي العزيز ،

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

وكل شكري وتقديري لك لأنك ابديت رأيك بصراحة ، وكذلك لأنك حملت على عاتقك اعداد مجموعة من الدروس المختصة بـ ADO.NET بشكلها الحقيقي ، وسأتابع دروسك بإذن الله تعالى ، وسأعمل على تطوير هذا المثال بأسرع ما يمكن ليكون خير مثال لـ ADO.NET بتفاصيلها الجديدة

وتقبل تحياتي

#4

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

#5

حياكم الله

موقوف من المشاركة لقلة الأدب

============================

#6

جزاك الله كل خير أخي الكريم

رَبِّ لَا تَذَرْنِي فَرْداً وَأَنتَ خَيْرُ الْوَارِثِينَ

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

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