السبت، 10 ديسمبر 2011

كيف ارضيك ياعميلي (تكوين قواعد بيانات مرنة قابلة للتطوير من قبل المستخدم)

كثر من العملاء من  يبحث على قواعد بيانات لا يعود اليك بعد ان تصممها له ان احتاج الى تطوير او تغير.
 فتنجه الى طريقة تكون قاعدة البيانات قابلة للتطوير وقابلة لاضافة الجداول والاعمدة  وقت التنفيذ اي متى مااحتاج زبوننا الى جدول جديد يضيفه تلقائيا وهو يتعشق داخل البرنامج ويتواصل مع البقية .....وبذالك يستغني العميل عن المبرمج بعد التصميم ويكون للبرنامج مرونة عالية
--------------تخيل انت مستخدم وبعد سنة احتجت الى اضافة جدول جديد يخص عمليات معينة وهاذا ما يحصل فعلا في المؤسسات الحكومية والشركات تكون قواعد بياناتها بتطوير مستمر وتغير مستمر ....فهل من المنطق ان كل مااحتاج الى تطوير يعود اليك
مثل مايكول العراقي(تطلع البطانة اغلى من الوجه)
اذن فلحل.........؟
نمكنه من اضافة جداول تتعشق بعد اضافتها مع بقية الاجزاء

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

--------في هذا المثال نضيف الادوات كما هي بينة



وهذا كود تكوين جدول حسب طلب المستخدم
 Dim tableName As String = TextBox1.TextTry' Part 2: Create one Table using OLEDB Provider
con.Open()
Dim con As New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" & Application.StartupPath & "\sdtdb.mdb")'Get database schema
con.Close()
Dim dbSchema As DataTable = con.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, tableName, "TABLE"})' If the table exists, the count = 1If dbSchema.Rows.Count > 0 Then' do whatever you want to do if the table existsElse'begin creat tabelDim solsaved As String = "CREATE TABLE [" & tableName & "] ([ID] INT PRIMARY KEY"
c1.SelectedIndex = i
CheckedListBox1.SelectedIndex = i
solsaved = solsaved &
For i = 0 To c1.Items.Count - 1" ,[" & c1.SelectedItem & "] " & CheckedListBox1.SelectedItemNextsolsaved = solsaved & ")"'do whatever you want to do if the table does not existMsgBox(solsaved)' e.g. create a table
con.Open()
cmd.ExecuteNonQuery()
MessageBox.Show(
con.Close()
Dim cmd As New OleDb.OleDbCommand(solsaved, con)"Table Created Successfully")End If
MsgBox(ex.Message, MsgBoxStyle.Critical,
Catch ex As Exception"Error")End Try

وهذا كود اضافة عمود من نوع نصي وكذالك بقية الانواع تستطيع عمل switch case لها
c1.Items.Add(TextBox70.Text)
CheckedListBox1.Items.Add("TEXT(50)")

هناك تعليق واحد:

alhedhed يقول...

فكره جميله و ممتازة
أتمنى أن تكون المشاركات مصحوبه بامكانية تحميل للمثال
شكرا