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

(قسم الاعلانات) الموضوع:تسويق الكترونى من المنزل بواسطة: (amediana) :: (قسم الاعلانات) الموضوع:مدافن ومقابربمدينةالعبور بنظام تقسيط ربع سنوى بواسطة: (amediana) :: (قسم الاعلانات) الموضوع:تصدير جميع الخضارالفواكة الفريش والمجمدة بواسطة: (amediana) :: (منتدى الأكسس) الموضوع:اضافة ملف pdf الى النموذج بواسطة: (startnet) :: (أخبار التكنولوجيا) الموضوع:برنامج محاسبة بواسطة: (لمياء يوسف) :: (أخبار التكنولوجيا) الموضوع:برنامج محاسبة للمقاولات بواسطة: (لمياء يوسف) :: (قسم الاعلانات) الموضوع:اقوى انواع المبيدات بواسطة: (سجيات) :: (منتدى الأكسس) الموضوع:المساعدة في إتمام نموذج بحث متقدم بواسطة: (wael12440) :: (منتدى الأكسس) الموضوع:المساعدة في استرجاع الجداول من قاعدة بيانات معطوبة بواسطة: (ياسري المملكة) :: (أخبار التكنولوجيا) الموضوع:طريقة سريعة و سهلة لتكبير و تصغير أيقونات الهاتف بواسطة: (AZE456) :: (قسم الاعلانات) الموضوع:الحل لبيع وعرض المنتجات على الإنترنت بدون إمتلاك موقع بواسطة: (أحمد النجدي) :: (قسم الاعلانات) الموضوع:مكتب المستشار أحمد أبوزيد للتحكيم التجاري الدولي بواسطة: (اراباك) :: (قسم الاعلانات) الموضوع:شركة حصن الرياض بواسطة: (حصن الرياض) :: (قسم الاعلانات) الموضوع:احدث تصميمات مشبات مشبات العتيق بواسطة: (MALEEK) :: (قسم الاعلانات) الموضوع:أحدث كاميرات مراقبة داخلية CONVOY بواسطة: (eng sara) :: (منتدى ADO.NET العام) الموضوع:تصميم مواقع جذابا مبتكره عصريا ملائما لمحركات البحث العالمية بواسطة: (hyma) :: (أخبار التكنولوجيا) الموضوع:برنامج شؤون الموظفين بواسطة: (لمياء يوسف) :: (منتدى الأكسس) الموضوع:المشاركة في اتمام برنانج اصول ثابتة بواسطة: (almosafer almasry) :: (قسم الاعلانات) الموضوع:عروض شهر رمضان على أجهزة الحضور والانصراف بواسطة: (eng sara) :: (منتدى الأكسس) الموضوع:جمع ثلاثة جداول في استعلام واحد بواسطة: (alzoriki)


راديو القرآن

المواضيع المثبته: (منتدى مبرمجي Microsoft Visual VB.NET) الموضوع:طريقة تخزين أي نوع ملفات في Access DataBase ومشاهدتها وتشغيلها بواسطة: (jbsa) :: (منتدى مبرمجي لغة جافا JAVA) الموضوع:شرح أكواد الجافا بواسطة: (الردادي) :: (منتدى مبرمجي Microsoft Visual C#.NET) الموضوع:مكتبة الأمثلة والتطبيقات للغة #C بواسطة: (النور) :: (منتدى Microsoft Excel) الموضوع:هيا بنا نتعلم كتابة الكود فى الاكسيل VBA بواسطة: (ramies) :: (منتدى الأكسس) الموضوع:مثال يجمع عده افكار به فائده ان شاء الله بواسطة: (startnet) :: (Oracle قسم قواعد البيانات أوراكل) الموضوع:تعرف على تقنية Oracle APEX بواسطة: (وليد القدسي) :: (منتدى مبرمجي ASP) الموضوع:تحزين سجلات داخل ملفات اكسل و xml وورد ..إلخ بواسطة: (عبدالله جابر شقليه) :: (منتدى مبرمجي Microsoft Visual C#.NET) الموضوع:موسوعة الأكواد بواسطة: (fmo_82) :: (منتدى أنظمة الشبكات وأمنها) الموضوع:الشبكات الحاسوبية ..Computer Network.. بواسطة: (مرحبا الساع) :: (Oracle قسم قواعد البيانات أوراكل) الموضوع:اعداد و تنصيب اوراكل 9i ويندز NT/2000/XP بواسطة: (oracle_egypt) :: (منتدى أجاكس(Asynchronous JavaScript and XML)) الموضوع:نبذة مختصرة عن تعريف تقنية أجاكس بواسطة: (عبدالله جابر شقليه) :: (Oracle قسم قواعد البيانات أوراكل) الموضوع:بعض ميزات أوركل 10g بواسطة: (وليد القدسي) :: (منتدى Microsoft Visual Basic) الموضوع:بنك اكواد المحيط العربي بواسطة: (محمد جمعة) :: (منتدى تحليل و تصميم نظم المعلومات) الموضوع:مراحل تحليل النظم لدراسة نظام قائم بواسطة: (jbsa) :: (قسم التعاميم والشكاوي) الموضوع:صفحة منتديات المحيط العربي على الفيس بوك بواسطة: (ramies) :: (منتدى مبرمجي Microsoft Visual VB.NET) الموضوع:الادوات الجديده Controls فى الدوت نت بواسطة: (alaa gomaa) :: (منتدى مبرمجي لغة جافا JAVA) الموضوع:برنامج للموبايل بلغة الجافا للبحث على جوجل بواسطة: (Doctors) :: (منتدى برمجة التقارير) الموضوع:كتاب كريستال ريبورت بواسطة: (شهرزاد) :: (منتدى Microsoft Excel) الموضوع:شرح الفيجوال بيزيك للمتوسطين vba بواسطة: (hs889) :: (منتدى Microsoft Excel) الموضوع:دروس إكسل و شرح الدوال و تقنيات متقدمة بواسطة: (صهيب جاويش)

عدد الصفحات : 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ك ) عدد مرات التنزيل: 2302


--------------------
للأعلىأبلغ المشرف عن هذه المشاركة
لتعقيب على هذه المشاركة مباشرة
مشاركةالجمعة,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   > » موضوع مغلق إضافة موضوع جديد



 
الوقت الأن:اليوم,07:43 مساءً بتوقيت القدس المحتلة

Powered By arabmoheet v3.1

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