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

(قسم الاعلانات) الموضوع:طريقة تنظيف المنزل بعد العزومات الكبيرة بواسطة: (حنان المليجي) :: (قسم الاعلانات) الموضوع:صور مشبات الموقد اوجارات المده بواسطة: (تصميم تصميم) :: (قسم الاعلانات) الموضوع:خدمات شركة روضة الخليج للخدمات المنزليه بجازان بواسطة: (فيفي علي) :: (قسم الاعلانات) الموضوع:مؤسسه ريتاج لنقل العفش بواسطة: (فيفي علي) :: (قسم الدعم الفني) الموضوع:شركة نقل اثاث بالرياض بواسطة: (فيفي علي) :: (قسم الاعلانات) الموضوع:الان انضم معنا واشتغل من البيت بواسطة: (مجتمع خبير) :: (قسم التعاميم والشكاوي) الموضوع:المرفقات والبحث لايعملان بواسطة: (عذاب الزمان) :: (منتدى الأكسس) الموضوع:ظهور خيارات صندوق مربع السرد في مربعي نص مختلفين بشرط بواسطة: (عذاب الزمان) :: (منتدى الأكسس) الموضوع:البحث في النموذج الفرعي بواسطة: (محمد عمار123) :: (قسم الاعلانات) الموضوع:كبائن شاور كبائن اكليريك كبائن حمام كبائن الوميتال عقارى 01100448640 بواسطة: (furniture740) :: (قسم الاعلانات) الموضوع:نجار بالرياض شركة التميز بواسطة: (furniture740) :: (قسم الاعلانات) الموضوع:شركة ديكورات مودرن – كرياتف جروب بواسطة: (furniture740) :: (قسم الاعلانات) الموضوع:شركة تنظيف شعاع كلين بواسطة: (furniture740) :: (قسم الاعلانات) الموضوع:افضل شركه ديكورات حديثه - كرياتف جروب بواسطة: (furniture740) :: (قسم الاعلانات) الموضوع:طريقة تنظيف البيت بدون تعب وبأسرع وقت بواسطة: (furniturecairo740) :: (قسم الاعلانات) الموضوع:اجمل صور انمى بواسطة: (furniturecairo740) :: (قسم الاعلانات) الموضوع:شركة تنظيف مكيفات بالرياض 0507536002 بواسطة: (furniturecairo740) :: (قسم الاعلانات) الموضوع:افضل شركة ديكور داخلي في مصر - كرياتف جروب للديكورات بواسطة: (furniturecairo740) :: (قسم الاعلانات) الموضوع:الرجل الناجح بواسطة: (furniturecairo740) :: (قسم الاعلانات) الموضوع:كل ما تريد معرفته عن اسعار و تفاصيل الشقق في كمبوند زيد ايست بواسطة: (hawkmoving740)

المواضيع المثبته: (القسم العام) الموضوع:كل موضوع تم شرحه فيديو هنا بواسطة: (startnet) :: (قسم التعاميم والشكاوي) الموضوع:صفحة منتديات المحيط العربي على الفيس بوك بواسطة: (ramies) :: (منتدى Microsoft Excel) الموضوع:معلومات سريعة من برنامج اكسل بواسطة: (junkbki) :: (منتدى الكتب و المقالات) الموضوع:الشرح الكامل التفصيلي المصور لمعرفة نسخة الأكسيس وتخفيض الأمان برمجيا بواسطة: (zahrah) :: (منتدى مبرمجي ASP.NET) الموضوع:كيفية قرائة الصحف الإلكترونية والكتب والمجلات عبر الانترنت بواسطة: (عبدالله جابر شقليه) :: (Oracle قسم قواعد البيانات أوراكل) الموضوع:تنصيب أوراكل 8i النسخة الشخصية على ويندوز XP بواسطة: (راحـل) :: (منتدى أنظمة الشبكات وأمنها) الموضوع:طريقة عمل شبكة لاسلكية بين جهازين او أكثر ..اكس بي.. لمشاركة الملفات والإنترنت بواسطة: (مرحبا الساع) :: (منتدى مبرمجي ASP.NET) الموضوع:كيفية عرض المنتديات والأقسام والمواضيع بواسطة: (عبدالله جابر شقليه) :: (قسم الـ portable) الموضوع:أفضل برامج مفيدة للكمبيوتر وتعمل Portable اي بدون تنصيب بواسطة: (أبو ليان) :: (منتدى أنظمة الشبكات وأمنها) الموضوع:الشبكات الحاسوبية ..Computer Network.. بواسطة: (مرحبا الساع) :: (منتدى برمجة الألعاب) الموضوع:تصميم الألعاب باستخدام game maker بواسطة: (Bahr ahmodah) :: (منتدى مبرمجي Microsoft Visual VB.NET) الموضوع:حصرياً : كل شيء يخص الفيجوال بيسك دوت نت - اسطوانات - كتب - أكواد - ال بواسطة: (صائبكو) :: (منتدى برمجة التقارير) الموضوع:كتاب كريستال ريبورت بواسطة: (شهرزاد) :: (منتدى مبرمجي ASP.NET) الموضوع:كيفية ربط الأوراكل مع asp.net بواسطة: (عبدالله جابر شقليه) :: (منتدى مبرمجي Microsoft Visual VB.NET) الموضوع:دورة تحزيم البرامج Setup & Deployment Applications by VS 2008 بواسطة: (Max Bayne) :: (Oracle قسم قواعد البيانات أوراكل) الموضوع:تعرف على تقنية Oracle APEX بواسطة: (وليد القدسي) :: (منتدى Microsoft Excel) الموضوع:تعالوا نتعلم - دروس في الإكسيل بواسطة: (وائل مراد) :: (منتدى الدعم الفني للماسنجر المحيط العربي) الموضوع:اقتراحات تطوير الماسنجر بواسطة: (jbsa) :: (منتدى Microsoft SQL Server) الموضوع:دورة Transaction SQL بواسطة: (Server_Programmer) :: (منتدى Borland Delphi) الموضوع:أحفظ برامجك الديلفاوية من أذي العابثين باستخدام رقم الهارد (محترفين) بواسطة: (Hadyabady)

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


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

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

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

المجموعة: مشرفي الموقع
المشاركات: 728
سجل في:الثلاثاء,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   > » موضوع مغلق إضافة موضوع جديد



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

Powered By arabmoheet v3.1

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