منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : وداعا ADO.net ووداعا للعلاقات في قواعد البيانات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ونهاركم مبارك ان شاء الله

لانني ارى الجمود بعالمنا العربي وعدم التحرك نحو الجديد والبحث قررت ان انشر هذا الموضوع .

هل يزعجك تصميم قاعدة بيانات وانشاء الجداول والعلاقات فيما بينها ...؟
هل تزعجك الاستعلامات المعقدة بين الجداول واكواد الاتصال والحذف والتعديل ...؟

حسنا اذا انت بالمكان الصحيح .

الموضوع ليس بجديد وسبق ونشرت عنه .
انك امام ثقنية يقولون انها اسرع بملايين المرات من ثقنية Ado.Net
نحن لا نريد ان نصدق هذا .
لنقل انها اسرع ليس حتى بالالاف المرات وانما بمئات المرات .
مئات المرات استطيع ان ابصم عليها بختمي الخاص واعتمد هذا الطرح .
وفوق كل هذا هو السهولة في التعامل معها من حيث العرض والاتصال والاضافة .

نحن نتحدث عن ثقنية DB40 الكائنية .

هذا كل ماتحتاج للاتصال وانشاء قاعدة بياناتك .

كود :
Friend db As IObjectContainer = Db4oFactory.OpenFile(FileIO.FileSystem.CurrentDirectory & "\DB")


وهذه كل ماتحتاج لانشاء جدولك

كود :
Public Class Emp

   Dim _mname As String
   Public Property mname As String
       Get
           Return _mname
       End Get
       Set(value As String)
           _mname = value
       End Set
   End Property

   Dim _mdate As Date
   Public Property mdate As Date
       Get
           Return _mdate
       End Get
       Set(value As Date)
           _mdate = value
       End Set
   End Property

   Dim _pic As Byte()
   Public Property pic As Byte()
       Get
           Return _pic
       End Get
       Set(value As Byte())
           _pic = value
       End Set
   End Property


End Class


وهذا كل ماتحتاج لحفظ سجل جديد

كود :
Dim k As New Emp()
       k.mname = TextBox1.Text.Trim
       k.mdate = DateTimePicker1.Value
       Dim converter As New ImageConverter
       k.pic = converter.ConvertTo(PictureBox1.Image, GetType(Byte()))
       db.Store(k)

بعيدا عن التنظير دعوني اردخلكم في مثال عملي صممته على السريع من اضافة وحذف وتعديل وعرض .
لاحظ عند تشغيل المشروع اول مرة اذا لم يكن هناك قاعدة بيانات يتم انشاءها فورا .
ايضا المكتية يمكنها العمل على شبكة كذلك .

حملوه وجربوه وسوف يكون لنا حديث بعدها

لاتنسو اضافة المكتبة Db4objects.Db4o.dll من الـ Reference

[attachment=22745]

[attachment=22744]
السلام عليكم اخي ابو همام
اذا كانت بهذه البساظة فالف وداع Ado.net
شكرا ياغالي
شيء غير معقول
لكن السؤال ماذا لو ان لدي جداول كثيرة وبينها علاقات؟
ان كان بالامكان كتاب او موقع يشرح هذه التقنية
إقتباس :السلام عليكم اخي ابو همام
اذا كانت بهذه البساظة فالف وداع Ado.net



وعليكم السلام ورحمة الله وبركاته

أجل ان لم احبذ هذه الثقنية منذ اول يوم جربتها .


إقتباس :شكرا ياغالي
شيء غير معقول


الله يحفظك 


إقتباس :لكن السؤال ماذا لو ان لدي جداول كثيرة وبينها علاقات؟
ان كان بالامكان كتاب او موقع يشرح هذه التقنية

ولهذا قلت ولنا حديث بعد كل هذا .
سوف نستمر في انشاء فئات تحوي فئات اخرى ومصفوفات وكائنات وامور كثيرة .
وسوف اعطيكم من اين تحملون الكتب والمكتبة
انها تحتاج الى شخص بلم في التعامل مع الفئات والمصفوفات والمجموعات وكل هذا .

لازال الجميع يفكر ويحلل ويبتكر فيها
يوم امس وانا ابحث وجدت سؤال في موقع stackoverflow له تسع شهور لم يتحصل على اجابة
والسؤال يقول كيف اعدل رقم كل السجلات التي بتاريخ بين كذا وكذا .
واوجدت الحل بسرعة مع انه كان على C# وانا لا احبها ولا افهمها جيدا في العمليات الرياضية والتحويلات .
في المثال السابق تم تحديث الاجراء LoadData 
وبدل من ترك Result كائن من نوع Object جعلناه lList من الفئة Emp وعبارة عن Collection وهذا سوف يسهل العمل معه على مستوى المشروع .

كود :
Public Sub LoadData(Optional Found As String = "")

       Dim container As IObjectContainer = db
       Dim result As IList(Of Emp) = container.Query(Of Emp)(GetType(Emp))  )
       Try
           BindingSource1.DataSource = result
       Catch ex As Exception

       End Try

   End Sub
صحيح انا تحدتث عن هذه الثقنية من قبل ولكن لم اجربها .
الان فقط اقوم بعمل تجارب عليها لهذا كما يقول الأجانب (Do not be shy)
اذا وجدتم فكرة يمكنكم ان تطرحوها .

حاولت الان تجربة ضم Collection من نوع String
في الفئة اضفت 

كود :
Friend arr As New List(Of String)

وفي زر الاضافة

كود :
Dim k As New Emp()
       k.mname = TextBox3.Text.Trim
       k.mdate = DateTimePicker1.Value
       k.arr.Add("BMW")
       k.arr.Add("MAZDA")

على سبيل انه يمثل عدد السيارات التي يملكها 
ولاظهارها 

كود :
Dim k As Emp = CType(result(BindingSource1.Position), Emp)
       If Not k.arr Is Nothing Then
           For i As Integer = 0 To k.arr.Count - 1
               ListBox1.Items.Add(k.arr.Item(i).ToString)
           Next
       End If
المرحلة القادمة هي ضم فئة جديدة وربطها بالفئة الاولى كا Collection يمثل بيانات جدول فرعي
لاتوجد روابط بين الجداول وانما بهذه الطريقة كل فئة تستدعيها تحمل معها كل الفئات التي بداخلها وتمثل بيانات فرعية
قرأت مقال ان DB40 تم احتكارها من شركة ما .
ولكن هناك بديل افضل لها mongodb ويتم تحديثها باستمرار لهذا سوف ننتقل لها

https://www.tutorialspoint.com/mongodb/index.htm

للتحميل

https://www.mongodb.com/download-center/cloud
(27-08-19, 07:07 PM)viv كتب : [ -> ]قرأت مقال ان DB40 تم احتكارها من شركة ما .
ولكن هناك بديل افضل لها mongodb ويتم تحديثها باستمرار لهذا سوف ننتقل لها

https://www.tutorialspoint.com/mongodb/index.htm

للتحميل

https://www.mongodb.com/download-center/cloud

لو تكرمت ممكن مثال على الاضافة والتعديل والحفظ والحذف والبحث مع هذا النوع من قواعد البيانات

(26-08-19, 06:05 PM)viv كتب : [ -> ]السلام عليكم ونهاركم مبارك ان شاء الله

لانني ارى الجمود بعالمنا العربي وعدم التحرك نحو الجديد والبحث قررت ان انشر هذا الموضوع .

هل يزعجك تصميم قاعدة بيانات وانشاء الجداول والعلاقات فيما بينها ...؟
هل تزعجك الاستعلامات المعقدة بين الجداول واكواد الاتصال والحذف والتعديل ...؟

حسنا اذا انت بالمكان الصحيح .

الموضوع ليس بجديد وسبق ونشرت عنه .
انك امام ثقنية يقولون انها اسرع بملايين المرات من ثقنية Ado.Net
نحن لا نريد ان نصدق هذا .
لنقل انها اسرع ليس حتى بالالاف المرات وانما بمئات المرات .
مئات المرات استطيع ان ابصم عليها بختمي الخاص واعتمد هذا الطرح .
وفوق كل هذا هو السهولة في التعامل معها من حيث العرض والاتصال والاضافة .

نحن نتحدث عن ثقنية DB40 الكائنية .

هذا كل ماتحتاج للاتصال وانشاء قاعدة بياناتك .

كود :
Friend db As IObjectContainer = Db4oFactory.OpenFile(FileIO.FileSystem.CurrentDirectory & "\DB")


وهذه كل ماتحتاج لانشاء جدولك

كود :
Public Class Emp

   Dim _mname As String
   Public Property mname As String
       Get
           Return _mname
       End Get
       Set(value As String)
           _mname = value
       End Set
   End Property

   Dim _mdate As Date
   Public Property mdate As Date
       Get
           Return _mdate
       End Get
       Set(value As Date)
           _mdate = value
       End Set
   End Property

   Dim _pic As Byte()
   Public Property pic As Byte()
       Get
           Return _pic
       End Get
       Set(value As Byte())
           _pic = value
       End Set
   End Property


End Class


وهذا كل ماتحتاج لحفظ سجل جديد

كود :
Dim k As New Emp()
       k.mname = TextBox1.Text.Trim
       k.mdate = DateTimePicker1.Value
       Dim converter As New ImageConverter
       k.pic = converter.ConvertTo(PictureBox1.Image, GetType(Byte()))
       db.Store(k)

بعيدا عن التنظير دعوني اردخلكم في مثال عملي صممته على السريع من اضافة وحذف وتعديل وعرض .
لاحظ عند تشغيل المشروع اول مرة اذا لم يكن هناك قاعدة بيانات يتم انشاءها فورا .
ايضا المكتية يمكنها العمل على شبكة كذلك .

حملوه وجربوه وسوف يكون لنا حديث بعدها

لاتنسو اضافة المكتبة Db4objects.Db4o.dll من الـ Reference

شكرا جزيلا على المثال اكثر من رائع ممكن تضيف على المثال نص بحث
معلش علي سؤالي طب انا لو عامل Database SQL بتشتغل معاها بنفس الطريقه مع العلم ان ملف قاعدة البيانات مش علي نفس الجهاز علي سيرفر خارجي