قواعد المشاركة في المنتدى

(منتدى Microsoft Visual Basic) الموضوع:ادراج رابط صورة في جدول واستدعائها بواسطة: (ابو حمد) :: (منتدى مبرمجي Microsoft Visual VB.NET) الموضوع:اكبر مكتبة اكواد فى الفيجوال بيسك دوت نت بواسطة: (ابو حمد) :: (منتدى مبرمجي Microsoft Visual VB.NET) الموضوع:مشكلة في كود البحث بواسطة: (ابو حمد) :: (منتدى Microsoft Visual Basic) الموضوع:كيف أضيف صوت للـ Command في الفيجوال بيسك 6 بواسطة: (ابو حمد) :: (منتدى مبرمجي Microsoft Visual VB.NET) الموضوع:Please help me بواسطة: (ابو حمد) :: (قسم الاعلانات) الموضوع:طرق تنظيف الثلاجة بواسطة: (سجيات) :: (منتدى الأكسس) الموضوع:طريقة جديدة تمكنك من البحث عن الصنف واضافتة تلقائى فى الفاتورة مع السعر بواسطة: (xhanyx) :: (منتدى الأكسس) الموضوع:تمكنين المستخدم من تعديل البيانات الخاصة به فقط بواسطة: (xhanyx) :: (قسم الاعلانات) الموضوع:شركة الحافظ المثالي للخدمات المنزلية بواسطة: (خالدعلي) :: (منتدى الأكسس) الموضوع:انشاء برنامج بسيط للمحلات على الاكسس شراء بيع ومخزن وربح بواسطة: (xhanyx) :: (قسم الاعلانات) الموضوع:شركة فارس المستقبل للخدمات المنزلية بواسطة: (خالدعلي) :: (قسم الاعلانات) الموضوع:افضل شركة خدمات منزلية بواسطة: (خالدعلي) :: (قسم الاعلانات) الموضوع:برنامج حسابات عقارات المساعد الفني بواسطة: (مكتب الشروق الفني) :: (قسم الاعلانات) الموضوع:تعرف على طرق الحفاظ على نظافة الثلاجة بواسطة: (amany elsayed) :: (منتدى ADO.NET العام) الموضوع:احتراف أنظمة الشَّبكات سيسكو CCNA بواسطة: (احمدجج) :: (قسم التطوير والاقتراحات) الموضوع:دورة تنمية مهارات الابتكار و الابداع للمديرين بواسطة: (Nermeen metc) :: (قسم الاعلانات) الموضوع:اسعار الدريسنج روم . افضل الاسعار . للاتصال 01207565655 بواسطة: (هند صبرى 100) :: (قسم الاعلانات) الموضوع:تعرف على طرق الصيانة الدورية للثلاجة بواسطة: (amany elsayed) :: (قسم الاعلانات) الموضوع:اشكال دريسنج روم للمساحات الصغيرة . للاتصال 01013843894 بواسطة: (هند صبرى 100) :: (منتدى ADO.NET العام) الموضوع:تنظيف مكافحة حشرات شركة القاهرة بواسطة: (نرجس بينت جده)


راديو القرآن

المواضيع المثبته: (Oracle قسم قواعد البيانات أوراكل) الموضوع:تعرف على تقنية Oracle APEX بواسطة: (وليد القدسي) :: (قسم التعاميم والشكاوي) الموضوع:هنيئا للشعب المصري بواسطة: (صهيب جاويش) :: (قسم التعاميم والشكاوي) الموضوع:صفحة منتديات المحيط العربي على الفيس بوك بواسطة: (ramies) :: (منتدى Microsoft Excel) الموضوع:شرح دوال الاكسيل كلِ على حده بواسطة: (ramies) :: (قسم التعاميم والشكاوي) الموضوع:الرتب في المنتدى بواسطة: (عبدالله جابر شقليه) :: (منتدى Microsoft SQL Server) الموضوع:كيف أقوم بنسخ البيانات فقط من جهازي الى الويب بواسطة: (أبو محمـد) :: (منتدى Microsoft Visual Basic) الموضوع:عرض الصور المخزنه في قاعدة البيانات بالكريستال ريبورت بواسطة: (ابو حمد) :: (قسم الدروس و الدورات) الموضوع:برمجة بصمة الاصبع مع الدوت نت Microsoft FingerPrint Reader بواسطة: (FunctionSys) :: (منتدى Microsoft Visual Basic) الموضوع:Home Administrator Project بواسطة: (zoubicom) :: (منتدى Microsoft Excel) الموضوع:هيا بنا نتعلم كتابة الكود فى الاكسيل VBA بواسطة: (ramies) :: (منتدى البرامج) الموضوع:برنامج رهيب انتا تتكلم والكمبيوتر يكتب بالعربى بواسطة: (مستشفى الكمبيوتر) :: (منتدى C و C) الموضوع:دورة السي بلس بلس بواسطة: (مصطفي البارودي) :: (منتدى Microsoft Visual Basic) الموضوع:بنك اكواد المحيط العربي بواسطة: (محمد جمعة) :: (منتدى الأكسس) الموضوع:الوصل الي المساعده بشكل سريع وتحميل المرفقات الى المنتدي بواسطة: (startnet) :: (منتدى C و C) الموضوع:برنامج من سيربح المليون بواسطة: (مصطفي البارودي) :: (قسم النسخ والتحويل) الموضوع:برنامج تحويل قواعد البيانات العظيم بواسطة: (arabsboy) :: (Oracle قسم قواعد البيانات أوراكل) الموضوع:تنصيب أوراكل 8i النسخة الشخصية على ويندوز XP بواسطة: (راحـل) :: (منتدى Microsoft SQL Server) الموضوع:حصريا:: Microsoft SQL Server 2005,2000 ارجو التثبيت بواسطة: (Djsharawy) :: (منتدى مبرمجي ASP) الموضوع:شرح كود موقع شؤون الموظفين النسخة الأولى بواسطة: (alanees) :: (منتدى Microsoft Visual Basic) الموضوع:نظام إدارة المرتبات للمدارس Salary System 2008 بواسطة: (Max Bayne)

عدد الصفحات : 2  1  2   > » موضوع مغلق إضافة موضوع جديد

> انشاء قواعد البيانات برمجيا جداول - علاقات -قيود,درس مبسط
Bookmark and Share
تقييم الموضوع Label معدل التقيم:0
مشاركةالثلاثاء,29/جمادى الأولى/1429 هـ,10:23 صباحاً
المشاركة #1

الرتبة في المنتدى:ملازم أول

أيقونة المجموعة

المجموعة: أعضاء فعالين
المشاركات: 331
سجل في:الأحد,15/فر/1428 هـ,08:27 صباحاً
الدولة:السعودية
رقم العضوية: 20852




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



احب ان اقدم لكم اليوم مثال عن كيفية انشاء قواعد البيانات (اكسس) برمجيا بواسطة ال vb.net 2005

وسنحاول أن نغطي النقاط التالية :
- انشاء قاعدة بيانات access
- انشاء الجداول
- انشاء القيود (المفاتيح الاساسية ، القيود على الاعمدة )
- انشاء العلاقات بين الجداول

انشاء قاعدة البيانات :-
سنحتاج اولا لاضافة المكون Microsoft Jet OLE DB Provider and Microsoft ADO Ext. 2.7 for DDL and Security (ADOX)
بإتباع المسار :
Project --> Add References --> COM tab --> Microsoft ADO Ext. 2.7 for DDL and Security
الخطوة الثانية هي اضافة الاداة SaveFileDialog للفورم لاستخدامها لتحديد مكان حفظ قاعدة البيانات
نضيف module للمشروع ونعرف فيه متغير عام لتخزين مسار قاعدة البيانات التي سنقوم بإنشاءها
 كود
Public FileName As String


الان نرجع للفورم الاساسي ونضيف زر انشاء كما بالصورة


الاكواد :
سنقوم بانشاء function وظيفته انشاء قاعدة البيانات بعد تمرير مسار الحفظ اليه
الكود بالشكل التالي :
 كود

Public Function CreateAccessDatabase( _
ByVal DatabaseFullPath As String) As Boolean
Dim bAns As Boolean
Dim cat As New ADOX.Catalog()
Try

Dim sCreateString As String
sCreateString = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
DatabaseFullPath
cat.Create(sCreateString)

bAns = True

Catch Excep As System.Runtime.InteropServices.COMException
bAns = False
'do whatever else you need to do here, log,
'msgbox etc.
Finally
cat = Nothing
End Try
Return bAns
End Function

وكود زر الانشاء سيكون كالتالي :
 كود

With SaveFileDialog1
.FileName = FileName
.Filter = "database files (*.mdb)|*.mdb|" & "All files|*.*"
If .ShowDialog() = DialogResult.OK Then
FileName = .FileName

End If
End With

Try
CreateAccessDatabase(FileName)
MsgBox("تم اضافة قاعدة البيانات بنجاح", MsgBoxStyle.Information)

Catch ex As Exception
MsgBox(ex.Message)
End Try


يتبع ...


--------------------
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالثلاثاء,29/جمادى الأولى/1429 هـ,10:35 صباحاً
المشاركة #2

الرتبة في المنتدى:ملازم أول

أيقونة المجموعة

المجموعة: أعضاء فعالين
المشاركات: 331
سجل في:الأحد,15/فر/1428 هـ,08:27 صباحاً
الدولة:السعودية
رقم العضوية: 20852



انشاء الجداول :

نضيف للفورم الادوات التالية : - TextBox لإسم الجدول
- DataGridView ونضيف لها عمودين الاول لإسم العمود ونوعه TextBox والثاني لأنواع البيانات ونوعه comboBox

اولا سنقوم بإنشاء جدول يحتوي على عمود واحد لتخزين اسماء الجداول التي سننشئها لاحقا
نضع الكود في حدث الForm-Load
 كود

Dim cn As New OleDbConnection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FileName
Try
cn.Open()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Dim cm As New OleDbCommand("create table tableName(Tname varchar(50))", cn)
Try
cm.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
End Try


في زر حفظ الجدول سنقوم بكتابة الاكواد التالية :اولا انشاء الجدول :
 كود

Dim comm As New OleDbCommand
comm.Connection = cn
comm.CommandText = ("Create table " & Me.TextBox1.Text & "")
Try
comm.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
End Try

اضافة الأعمدة للجدول
 كود

' اضافة الاعمدة
Try

Catch ex As Exception

End Try
Try
Dim i As Integer
For i = 0 To DataGridView1.Rows.Count - 2
Dim row As DataGridViewRow = DataGridView1.Rows(i)
Dim name As DataGridViewTextBoxCell = row.Cells(0)
Dim type As DataGridViewComboBoxCell = row.Cells(1)
Dim str As String = "alter table " & TextBox1.Text & " add " & name.Value & " " & type.Value & " "
Dim cmadd As New OleDbCommand(str, cn)
'MsgBox(str)
cmadd.ExecuteNonQuery()

Next

اضافة اسم الجدول الجديد للجدول الذي انشاناه سابقا :
 كود

Dim cm2 As New OleDbCommand("insert into tablename(tname)values('" & Me.TextBox1.Text & " ')", cn)
cm2.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
End Try



--------------------
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالثلاثاء,29/جمادى الأولى/1429 هـ,10:51 صباحاً
المشاركة #3

الرتبة في المنتدى:ملازم أول

أيقونة المجموعة

المجموعة: أعضاء فعالين
المشاركات: 331
سجل في:الأحد,15/فر/1428 هـ,08:27 صباحاً
الدولة:السعودية
رقم العضوية: 20852



اضافة المفاتيح الاساسية للجداول PrimaryKey

سنقوم باضافة الادوات التالية للفورم :- ComboBox لاظهار اسماء الجداول الموجودة بالقاعدة والتي اضفناها سابقا
- ComboBox لإظهار اسماء الاعمدة التاعة لكل جدول

لإظهار اسماء الجداول سنستخدم الجدول الذي انشأناه في البدء بإسم TableName وهو يحتوي على عمود يحوي اسماء الجداول
 كود


cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FileName
Try
cn.Open()
Catch ex As Exception
MsgBox(ex.Message)
End Try

Dim cm As New OleDbCommand("select tname from tableName ", cn)
Dim dr As OleDbDataReader
dr = cm.ExecuteReader
Do While dr.Read
ComboBox1.Items.Add(dr.GetString(0))


Loop
dr.Close()


في حدث SelectedIndexChanged التابع للComboBox الخاصة بأسماء الجداول نكتب الكود الذي سيجلب اسماء الأعمدة على حسب اسم الجدول المختار من combobox
 كود

Dim da As New OleDbDataAdapter("select* from " & Me.ComboBox2.SelectedItem & "", cn)
Dim ds As New DataSet
da.Fill(ds)
Me.ComboBox4.Items.Clear()
For Each r As Data.DataColumn In ds.Tables(0).Columns
Me.ComboBox4.Items.Add(r.ColumnName)
Next

في زر اضافة المفتاح الاساسي نكتب الكود التالي :
Dim cm As New OleDbCommand("alter table " & Me.ComboBox1.SelectedItem & " add constraint pk_coulmn primary key (" & Me.ComboBox2.SelectedItem & " )", cn)
Try
cm.ExecuteNonQuery()

Catch ex As Exception
MsgBox(ex.Message)
End Try
بنفس الطريقة يمكننا اضافة قيود للأعمدة كقيد القيمة الافتراضية :
 كود

Dim cm As New OleDbCommand("alter table " & Me.ComboBox1.SelectedItem & " add constraint Df_coulmn Default '000' for (" & Me.ComboBox1.SelectedItem & " )", cn)
Try
cm.ExecuteNonQuery()

Catch ex As Exception
MsgBox(ex.Message)
End Try




--------------------
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالثلاثاء,29/جمادى الأولى/1429 هـ,11:06 صباحاً
المشاركة #4

الرتبة في المنتدى:ملازم أول

أيقونة المجموعة

المجموعة: أعضاء فعالين
المشاركات: 331
سجل في:الأحد,15/فر/1428 هـ,08:27 صباحاً
الدولة:السعودية
رقم العضوية: 20852




انشاء العلاقات بين الجداول

سنقوم بتصميم الفورم كما في الصورة :


في حدث الform load سنقوم بجلب اسماء الاعمدة وعرضها في combo1 و combo2 كما فعلنا في السابق :
 كود
Dim cn As New OleDbConnection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FileName
Try
cn.Open()
Catch ex As Exception
MsgBox(ex.Message)
End Try

Dim cm As New OleDbCommand("select tname from tableName ", cn)
Dim dr As OleDbDataReader
dr = cm.ExecuteReader
Do While dr.Read
ComboBox1.Items.Add(dr.GetString(0))
ComboBox2.Items.Add(dr.GetString(0))

Loop
dr.Close()


في حدث SelectedIndexChanged التابع للComboBox1 و ComboBox2 الخاصة بأسماء الجداول نكتب الكود الذي سيجلب اسماء الأعمدة على حسب اسم الجدول المختار من combobox
موجود بالأعلى فلن اكرره مرة اخرى ..

في حدث ال CheckedChanged التابع ل CheckBox1 سنكتب الكود التالي :(لتفعيل وإلغاء تفعيل الcheckbox الاخرى كما في برنامج الاكسس)
 كود

If Me.CheckBox1.Checked = True Then
Me.CheckBox2.Enabled = True
Me.CheckBox3.Enabled = True
Else
Me.CheckBox2.Enabled = False
Me.CheckBox3.Enabled = False

End If


كود إنشاء العلاقة :
 كود

Dim txt As String
If Me.CheckBox1.Checked = True And Me.CheckBox2.Checked = True And Me.CheckBox3.Checked = True Then
txt = "alter table " & Me.ComboBox2.SelectedItem & " add constraint " & Me.TextBox1.Text & " foreign key (" & Me.ComboBox4.SelectedItem & ") references " & Me.ComboBox1.SelectedItem & "(" & Me.ComboBox3.SelectedItem & ")on delete cascade on update cascade"
End If
If Me.CheckBox1.Checked = True And Me.CheckBox2.Checked = True And Me.CheckBox3.Checked = False Then
txt = "alter table " & Me.ComboBox2.SelectedItem & " add constraint " & Me.TextBox1.Text & " foreign key (" & Me.ComboBox4.SelectedItem & ") references " & Me.ComboBox1.SelectedItem & "(" & Me.ComboBox3.SelectedItem & ")on delete no action on update cascade"
End If
If Me.CheckBox1.Checked = True And Me.CheckBox2.Checked = False And Me.CheckBox3.Checked = True Then
txt = "alter table " & Me.ComboBox2.SelectedItem & " add constraint " & Me.TextBox1.Text & " foreign key (" & Me.ComboBox4.SelectedItem & ") references " & Me.ComboBox1.SelectedItem & "(" & Me.ComboBox3.SelectedItem & ")on delete cascade on update no action"
End If
Dim cm As New OleDb.OleDbCommand(txt, cn)
Try

cm.ExecuteNonQuery()
MsgBox("تم انشاء العلاقة ", MsgBoxStyle.Information)

Catch ex As Exception
MsgBox(ex.Message)
End Try




ملحوظة : هذه العلاقة مبنية عل اساس علاقة رأس بأطراف اي عندما يقوم المستخدم بإختيار الجداول والاعمده عليه التقيد بإختيار عمود المفتاح الأساسي من جدول الاب ..


مرفق لكم برنامج مبسط عن الفكرة كمثال عملي

ارجو ان اكون قد وفقت في الطرح
وفقكم الله



الملفات المرفقة
 Relations.rar ( 463ك ) عدد مرات التنزيل: 2333


--------------------
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالجمعة,02/جمادى الثانية/1429 هـ,10:43 مساءً
المشاركة #5

الرتبة في المنتدى:رقيب

أيقونة المجموعة

المجموعة: الأعضاء
المشاركات: 88
سجل في:الثلاثاء,07/محرم/1429 هـ,08:26 صباحاً
الدولة:السعودية
رقم العضوية: 42600



جزاكِ الله خيري الدنيا و الآخرة و نفع بك

بارك الله فيك و زادك من فضله


--------------------
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالجمعة,16/جمادى الثانية/1429 هـ,12:29 صباحاً
المشاركة #6

الرتبة في المنتدى:ملازم أول

أيقونة المجموعة

المجموعة: أعضاء فعالين
المشاركات: 331
سجل في:الأحد,15/فر/1428 هـ,08:27 صباحاً
الدولة:السعودية
رقم العضوية: 20852





--------------------
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالاثنين,19/جمادى الثانية/1429 هـ,10:56 مساءً
المشاركة #7

الرتبة في المنتدى:رقيب

أيقونة المجموعة

المجموعة: الأعضاء
المشاركات: 11
سجل في:الجمعة,17/محرم/1429 هـ,03:30 صباحاً
الدولة:السعودية
رقم العضوية: 43468



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


--------------------
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالجمعة,15/رجب/1429 هـ,10:47 صباحاً
المشاركة #8

مشرف عام
الرتبة في المنتدى:عقيد

أيقونة المجموعة

المجموعة: مشرفي الموقع
المشاركات: 727
سجل في:الثلاثاء,24/فر/1428 هـ,07:30 صباحاً
الدولة:مصر
رقم العضوية: 21334



السلام عليكم
بصرحه يا اختى شهرزاد حاجه جميله جدا والله ودرس رائع فعلا .
الله يباركلك ويزيدك من العلم والمعرفه
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالجمعة,15/رجب/1429 هـ,10:48 صباحاً
المشاركة #9

مشرف سابق لمنتدى VB.NET ADO.NET
الرتبة في المنتدى:لواء

أيقونة المجموعة

المجموعة: المشرفين القدامى
المشاركات: 1592
سجل في:الثلاثاء,26/شعبان/1427 هـ,09:40 صباحاً
الدولة:الأردن
رقم العضوية: 13584



ماشاء الله اختنا الكريمه شهرزاد مجهود كبير تشكرين عليه سوف اقوم بتثبيت الموضوع لتعم الفائده
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالثلاثاء,03/شعبان/1429 هـ,01:06 صباحاً
المشاركة #10

الرتبة في المنتدى:رقيب

أيقونة المجموعة

المجموعة: الأعضاء
المشاركات: 36
سجل في:الأحد,17/رجب/1429 هـ,01:06 صباحاً
الدولة:السعودية
رقم العضوية: 59838



مشكوره ياقلبي
هل اقدر اعمل نفس الخطوات لقاعدة بيانات SQL وADO
اتمنى الرد بسرعة لان عندي مشروع التخرج فيه هاذي الخطوة


--------------------
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة

    

عدد المتصفحين لهذا المنتدى «1»: (الضيوف «1» - المتخفون «0»)
الأعضاء «0»: .

عدد الصفحات : 2  1  2   > » موضوع مغلق إضافة موضوع جديد



 
الوقت الأن:اليوم,09:42 صباحاً بتوقيت القدس المحتلة

Powered By arabmoheet v3.1

منتديات المحيط العربي  -  راسلنا  -   أعلى
X   رسالة المنتدى
(سوف يتم اغلاق هذه النافذة بعد 2 ثانية)
X   رسالة المنتدى
(سوف يتم اغلاق هذه النافذة بعد 2 ثانية)