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

(منتدى الأكسس) الموضوع:فتح مجلد بواسطة: (startnet) :: (منتدى البرامج) الموضوع:تحميل برنامج Avast Free Antivirus مجانا بواسطة: (كوكب البرامج) :: (منتدى الأكسس) الموضوع:تهنئة بمناسبة عيد الفطر المبارك 2017 بواسطة: (startnet) :: (منتدى الأكسس) الموضوع:مشكلة غريبة جننتنى بواسطة: (startnet) :: (منتدى Microsoft Visual Basic) الموضوع:بنك اكواد المحيط العربي بواسطة: (عبدالعزيز بيروني) :: (منتدى Microsoft Visual Basic) الموضوع:مجاناً - مشروع تخرج نظام المبيعات source code بواسطة: (عبدالعزيز بيروني) :: (قسم الاعلانات) الموضوع:شقق للبيع تمليك جميع احياء مدينة العبور عروس المدن الجديدة للاستلام الفورى بواسطة: (جمعة عللام) :: (قسم الاعلانات) الموضوع:مطلوب اراضى للبيع او مشاركات او ادوار نعلية ونكمتة مبان بواسطة: (جمعة عللام) :: (أخبار التكنولوجيا) الموضوع:شركة تنظيف منازل بابها والرياض0554487606 بواسطة: (فرسان الوادي) :: (قسم الاعلانات) الموضوع:للبيع شقة تمليك حدائق القبة ش بور سعيد مباشرةل بواسطة: (جمعة عللام) :: (قسم الاعلانات) الموضوع:شقق للبيع بمدينة نصر الحى السابع تاصية للاستلام الفورى 155م 150م 125م بواسطة: (جمعة عللام) :: (قسم الاعلانات) الموضوع:شقق للبيع بمدينة نصر الحى السابع تاصية للاستلام الفورى 155م 150م 125م بواسطة: (جمعة عللام) :: (منتدى البرامج) الموضوع:شهادات الايلتس للبيع في قطر 00962790574474 معتمد بواسطة: (ايلتس او توفل) :: (منتدى مبرمجي Microsoft Visual VB.NET) الموضوع:شهادات الايلتس للبيع في الكويت 00962790574474 معتمد بواسطة: (ايلتس او توفل) :: (منتدى الكتب الالكترونية) الموضوع:شهادات ايلتس معتمدة للبيع في سلطنة عمان 00962790574474 بواسطة: (ايلتس او توفل) :: (قسم الاعلانات) الموضوع:للبيع شقق مدينة نصر حى الواحة الحى العاشر 160 م بواسطة: (جمعة عللام) :: (قسم الاعلانات) الموضوع:شهادة ايلتس او توفل معتمدة للبيع في السعودية 00962790574474 اصلي بواسطة: (ايلتس او توفل) :: (أخبار التكنولوجيا) الموضوع:شهادة ايلتس او توفل للبيع معتمدة في الاماررات 00962790574474 اصلي بواسطة: (ايلتس او توفل) :: (قسم الاعلانات) الموضوع:الشركه الدوليه للانشاء وادارة المشروعات نقوم البناء بالتنفيذ والتشطيب بواسطة: (جمعة عللام) :: (منتدى الأبحاث) الموضوع:صور مشبات امريكيه بواسطة: (مصطفى خميس)


راديو القرآن

المواضيع المثبته: (منتدى مبرمجي ASP) الموضوع:دورة احترافيه لبناء منتدى على asp بواسطة: (عبدالله جابر شقليه) :: (منتدى أنظمة الشبكات وأمنها) الموضوع:ماهو الـ IPSec بواسطة: (khaled helal) :: (منتدى مبرمجي ASP) الموضوع:مشروع university للجامعات بواسطة: (عبدالله جابر شقليه) :: (منتدى أجاكس(Asynchronous JavaScript and XML)) الموضوع:نبذة مختصرة عن تعريف تقنية أجاكس بواسطة: (عبدالله جابر شقليه) :: (منتدى Microsoft SQL Server) الموضوع:دورة Transaction SQL بواسطة: (Server_Programmer) :: (منتدى مبرمجي Microsoft Visual C#.NET) الموضوع:موقع جيد به Tutorials و مشاريع مفتوحة المصدر بواسطة: (يوسف) :: (منتدى مبرمجي Microsoft Visual VB.NET) الموضوع:دورة في LINQ To DataSet بواسطة: (jbsa) :: (منتدى Microsoft SQL Server) الموضوع:ما المقصود بتقنية replication بواسطة: (SQL Student) :: (منتدى برمجة الجرافكس) الموضوع:مجموعة دروس لتعليم الدايركت اكس بواسطة: (alaa gomaa) :: (كتب عن VB.NET) الموضوع:مكتبة مرفقات الدوت نت (المحيط العربى) بواسطة: (alaa gomaa) :: (منتدى Microsoft Excel) الموضوع:شرح الفيجوال بيزيك للمتوسطين vba بواسطة: (hs889) :: (منتدى Microsoft Visual Basic) الموضوع:دروس صوت وصورة للربط بين اسكيوال سيرفر والفجوال بيسيك بواسطة: (wael abed) :: (منتدى ADO.NET العام) الموضوع:الطريقة السهلة لربط سي شارب بقاعدة بيانات اكسيس بواسطة: (kal7hos) :: (منتدى Microsoft Visual Basic) الموضوع:دورة التعامل مع Data Report باستخدام ADODC ( شرح بالصور ) بواسطة: (Max Bayne) :: (منتدى Microsoft SQL Server) الموضوع:كتب SQL server بواسطة: (m.atassi) :: (منتدى مبرمجي لغة جافا JAVA) الموضوع:برنامج للموبايل بلغة الجافا للبحث على جوجل بواسطة: (Doctors) :: (منتدى Microsoft Excel) الموضوع:هيا بنا نتعلم كتابة الكود فى الاكسيل VBA بواسطة: (ramies) :: (قسم التعاميم والشكاوي) الموضوع:الرتب في المنتدى بواسطة: (عبدالله جابر شقليه) :: (منتدى ADO.NET العام) الموضوع:شرح ado.net بواسطة: (شهرزاد) :: (قسم المواضيع المميزة) الموضوع:المحاسب المميز - الاصدار الثاني - محاسبة و مخازن بواسطة: (alalal)

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


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



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

Powered By arabmoheet v3.1

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