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

(قسم الاعلانات) الموضوع:مطابخ كبيرة – كرياتف جروب - 01026185183 بواسطة: (نورهان سمير) :: (قسم الاعلانات) الموضوع:تأجير كراسي للمناسبات دبى افراحى 0561932441 بواسطة: (remo2019) :: (قسم الاعلانات) الموضوع:ورق جدران ثلاثي الأبعاد الشارقة0543006367 لينك بواسطة: (remo2019) :: (قسم الاعلانات) الموضوع:شركة مطبخ – كرياتف جروب - 01026185183 بواسطة: (نورهان سمير) :: (قسم الاعلانات) الموضوع:بخطوات بسيطه وسهلة قم بصيانة منزلك بواسطة: (لولو عبدالله) :: (قسم الاعلانات) الموضوع:افضل شركة مطابخ – 01026185183 بواسطة: (نورهان سمير) :: (قسم الاعلانات) الموضوع:مطابخ حديثة – كرياتف جروب للمطابخ - 01203903309 بواسطة: (نورهان سمير) :: (قسم الاعلانات) الموضوع:العاب هزازات هزاز باشكال مختلفة هزاز ثنائي هزاز رباعي الصحن الدوار بواسطة: (مبيعات) :: (قسم الاعلانات) الموضوع:Accounting Decision Making and Financial Communication course in Istanbul Barlen بواسطة: (مركز تدريب) :: (قسم الاعلانات) الموضوع:Professional Accounting Certificate course in London Kuala Lumpur Istanbul Barlen بواسطة: (مركز تدريب) :: (منتدى ال SQL العام) الموضوع:شركة تسليك مجاري بالرياض بواسطة: (سونجول محمد) :: (قسم الاعلانات) الموضوع:International Financial Reporting Standards IFRS course in Istanbul Barlen Stockholm بواسطة: (مركز تدريب) :: (قسم الاعلانات) الموضوع:Accounts Receivable and Credit Policies Management course in Barlen Paris Roma Dubai بواسطة: (مركز تدريب) :: (قسم الاعلانات) الموضوع:Spreadsheet Skills for Planning Forecasting and Budgeting course in Istanbul Dubai بواسطة: (مركز تدريب) :: (قسم الاعلانات) الموضوع:Integrating Budgeting Forecasting and Business Planning course in London Kuala Lumpur بواسطة: (مركز تدريب) :: (قسم الاعلانات) الموضوع:The Complete Course on Budgeting course in Paris Roma Amsterdam Stockholm Dubai بواسطة: (مركز تدريب) :: (قسم الاعلانات) الموضوع:يونيفورم عاملات نظافة 01118689995 بواسطة: (fareda) :: (قسم الاعلانات) الموضوع:تركيب مظلات خشبية في الدمام بواسطة: (جود ماري) :: (قسم الاعلانات) الموضوع:احدث كنبات مودرن ، ارخص سعر 01210044703 بواسطة: (تهاني سام) :: (قسم الاعلانات) الموضوع:مطابخ خشب hpl . استلم مطبخك فى 15 يوم 01122267552 بواسطة: (ديانا دودو 100)


راديو القرآن

المواضيع المثبته: (منتدى C و C) الموضوع:دورة السي بلس بلس بواسطة: (مصطفي البارودي) :: (منتدى ADO.NET العام) الموضوع:ربط قاعدة البيانات والفرق بين الوضع المتصل والوضع المنفصل وشرحها بالتفصيل بواسطة: (علاء عبدالخالق) :: (منتدى مبرمجي ASP) الموضوع:برنامج مكتبة إلكترونية بواسطة: (عبدالله جابر شقليه) :: (منتدى تحليل و تصميم نظم المعلومات) الموضوع:مراحل تحليل النظم لدراسة نظام قائم بواسطة: (jbsa) :: (Oracle قسم قواعد البيانات أوراكل) الموضوع:تفقيط الأرقام للغة العربية تحت بيئة oracle pl sql بواسطة: (adnan_som) :: (منتدى Microsoft Visual Basic) الموضوع:يرجى الإنتباه لجميع الأعضاء الجدد بواسطة: (zoubicom) :: (منتدى مبرمجي لغة جافا JAVA) الموضوع:شرح أكواد الجافا بواسطة: (الردادي) :: (منتدى أنظمة الشبكات وأمنها) الموضوع:امن المعلومات وامن الشبكات بواسطة: (khaled helal) :: (القسم المفتوح) الموضوع:الى الاخوه الاعضاء مع التحيه والتقدير بخصوص العناوين للمشاركة بواسطة: (startnet) :: (منتدى الكتب و المقالات) الموضوع:هل فكرت يوما أن تستغني عن شريط أوامر الأكسيس ؟ بواسطة: (alasomed) :: (منتدى Microsoft Excel) الموضوع:أكواد جاهزة للإستخدام في اكسل ( ماكروات ) بواسطة: (junkbki) :: (منتدى أجاكس(Asynchronous JavaScript and XML)) الموضوع:تقسيم النتائج لعدة صفحات مع 3 لغات برمجة ويب بواسطة: (عبدالله جابر شقليه) :: (Oracle قسم قواعد البيانات أوراكل) الموضوع:تنصيب أوراكل 8i النسخة الشخصية على ويندوز XP بواسطة: (راحـل) :: (Oracle قسم قواعد البيانات أوراكل) الموضوع:DECODE SQL STATMENT بواسطة: (mshaqalaih) :: (منتدى Microsoft SQL Server) الموضوع:ما المقصود بتقنية replication بواسطة: (SQL Student) :: (Oracle قسم قواعد البيانات أوراكل) الموضوع:كتب اوراكل (عربي) ...حمل... بواسطة: (عبد الرحمن) :: (منتدى مبرمجي Microsoft Visual C#.NET) الموضوع:المواضيع والدروس التعليمية في الدوت نيت - ابدأ من هنا بواسطة: (fmo_82) :: (منتدى أنظمة الشبكات وأمنها) الموضوع:أنواع الشبكات الحاسوبية بواسطة: (مرحبا الساع) :: (منتدى Borland Delphi) الموضوع:دروس دلفى بواسطة: (khaled helal) :: (منتدى Microsoft Visual Basic) الموضوع:أكبر مشاركة فيجوال بيسك بواسطة: (SkyLight)

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


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



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

Powered By arabmoheet v3.1

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