27-05-18, 05:35 AM
(27-05-18, 03:42 AM)blida02 كتب : السلام عليكم إخوتي،
معرفتي محدودة جدا في البرمجة، وقد استخدمت هذا الكود للحصول على احصائيات من قاعدة البيانات، وهذا نتيجة للبحث عبر محتلف المنتديات
الكود الذي استخدمه يعمل معي، لكن هل يمكن صياغته بطريقة أفضل؟
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If CheckBox1.Checked = True And CheckBox2.Checked = False Then
Dim daa1 As New OleDbDataAdapter
Dim dtt1 As New DataTable
daa1 = New OleDbDataAdapter("SELECT count(*) from Etudiants WHERE Sexe = '1' OR Sexe = 'M' OR Sexe = 'ذ' ", connDB)
daa1.Fill(dtt1)
Dim daa2 As New OleDbDataAdapter
Dim dtt2 As New DataTable
daa2 = New OleDbDataAdapter("SELECT count(*) from Etudiants WHERE Sexe = '2' OR Sexe = 'F' OR Sexe = 'أ' ", connDB)
daa2.Fill(dtt2)
DataGridView1.Visible = True
DataGridView1.ColumnCount = 2
DataGridView1.Columns(0).Name = "ذكور"
DataGridView1.Columns(1).Name = "إناث"
DataGridView1.Rows(0).Cells(0).Value = dtt1.Rows(0)(0).ToString()
DataGridView1.Rows(0).Cells(1).Value = dtt2.Rows(0)(0).ToString()
ElseIf CheckBox2.Checked = True And CheckBox1.Checked = False Then
Dim daa1 As New OleDbDataAdapter
Dim dtt1 As New DataTable
daa1 = New OleDbDataAdapter("SELECT count(*) from Etudiants WHERE AnnéeEtude = '1' ", connDB)
daa1.Fill(dtt1)
Dim daa2 As New OleDbDataAdapter
Dim dtt2 As New DataTable
daa2 = New OleDbDataAdapter("SELECT count(*) from Etudiants WHERE AnnéeEtude = '2' ", connDB)
daa2.Fill(dtt2)
DataGridView1.Visible = True
DataGridView1.ColumnCount = 2
DataGridView1.Columns(0).Name = "السنة الأولى"
DataGridView1.Columns(1).Name = "السنة الثانية"
DataGridView1.Rows(0).Cells(0).Value = dtt1.Rows(0)(0).ToString()
DataGridView1.Rows(0).Cells(1).Value = dtt2.Rows(0)(0).ToString()
ElseIf CheckBox2.Checked = True And CheckBox1.Checked = True Then
Dim daa1 As New OleDbDataAdapter
Dim dtt1 As New DataTable
daa1 = New OleDbDataAdapter("SELECT count(*) from Etudiants WHERE AnnéeEtude = '1' and (Sexe = '1' OR Sexe = 'M' OR Sexe = 'ذ' ) ", connDB)
daa1.Fill(dtt1)
Dim daa12 As New OleDbDataAdapter
Dim dtt12 As New DataTable
daa12 = New OleDbDataAdapter("SELECT count(*) from Etudiants WHERE AnnéeEtude = '1' and (Sexe = '2' OR Sexe = 'F' OR Sexe = 'أ' ) ", connDB)
daa12.Fill(dtt12)
Dim daa2 As New OleDbDataAdapter
Dim dtt2 As New DataTable
daa2 = New OleDbDataAdapter("SELECT count(*) from Etudiants WHERE AnnéeEtude = '2' and (Sexe = '1' OR Sexe = 'M' OR Sexe = 'ذ') ", connDB)
daa2.Fill(dtt2)
Dim daa22 As New OleDbDataAdapter
Dim dtt22 As New DataTable
daa22 = New OleDbDataAdapter("SELECT count(*) from Etudiants WHERE AnnéeEtude = '2' and (Sexe = '2' OR Sexe = 'F' OR Sexe = 'أ') ", connDB)
daa22.Fill(dtt22)
DataGridView1.Visible = True
DataGridView1.ColumnCount = 4
DataGridView1.Columns(0).Name = "ذكور السنة الأولى"
DataGridView1.Columns(1).Name = "إناث السنة الأولى"
DataGridView1.Columns(2).Name = "ذكورالسنة الثانية"
DataGridView1.Columns(3).Name = "إناث السنة الثانية"
DataGridView1.Rows(0).Cells(0).Value = dtt1.Rows(0)(0).ToString()
DataGridView1.Rows(0).Cells(1).Value = dtt12.Rows(0)(0).ToString()
DataGridView1.Rows(0).Cells(2).Value = dtt2.Rows(0)(0).ToString()
DataGridView1.Rows(0).Cells(3).Value = dtt22.Rows(0)(0).ToString()
Else
DataGridView1.Visible = False
End If
End Sub
بالتاكيد يمكن تقليل عدد الاسطر من الاكواد
ولكن لاعتماد ذلك سيتوجب عليك بناء Class
لعملية الاتصال باعدة البيانات واخرى لعملية الاستعلامات
حيث يمكن من Function واحد من داخل Class الاستعلامات
استخدامة على هيئة كلمتين فى سطر ويقوم بعديد من الاستعلام
حيث فى كل مرة تستدعي يقوم بتنفيذ استعلام معين داخل جدول محدد
على سبيل المثال كود بهذا الشكل
كود :
aaa = cls_data.count("*","Etudiants", 2)كود :
bbb = cls_data.count("ID","OtherTable", "ذكر")فتخيل حجم استخدام الكود فى الاستعلام
بينما العام تستخدم
مرة بهذا الشكل
كود :
Dim daa1 As New OleDbDataAdapter
Dim dtt1 As New DataTable
daa1 = New OleDbDataAdapter("SELECT count(*) from Etudiants WHERE Sexe = '1' OR Sexe = 'M' OR Sexe = 'ذ' ", connDB)
daa1.Fill(dtt1)واخري بهذا الشكل
كود :
Dim daa2 As New OleDbDataAdapter
Dim dtt2 As New DataTable
daa2 = New OleDbDataAdapter("SELECT count(*) from Etudiants WHERE Sexe = '2' OR Sexe = 'F' OR Sexe = 'أ' ", connDB)
daa2.Fill(dtt2)حتى تتمكن من معرة اكثر حاول الاطلاع على العديد من الدروس
فى بناء مشاريع او يكون دروس مخصصة عن هذا الموضوع
لا يهم قيامك بناء العديد من المشاريع
وكل مشروع بطرق مختلفة فى بناء الاتصال والاستعلام
الاهم هو ان تطلع على عدد اكبر لطرق التعامل والاستفادة منها
من ثم تحديد مسيرة تعاملك مع طريقة الكتابة للاكواد
لا يهم ان الدروس التى قد تطلع عليها يقوم بناء مشروع بنس فكرة مشروعك
فى كلا الاحوال بناء اى مشروع مبني على
استعلام / اضافة / تعديل / حذف بقاعدة البيانات
وهى الاهم انه كيف كل شخص بيتعامل فى الشرح مع هذا
تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]
ساهم دائماً فى
لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله
▼ شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]
ساهم دائماً فى
لكل من يقوم بالمساهمةفى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله
▼ شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية

