الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال عاجل ومهم

مغلق
بدأه ابو خالد111 في 22 أبريل 2005 · 17 رد · 1,355 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخوتي في الله لدية اكثر من سؤال

1- كيف اعمل تحديث بأستمرار لقاعدة البيانات.

2- كيف اظهر الاضافة للبيانات في DATAGRID يعني بمجرد ما اعمل الاضافة واضغط على زر الاضافة يوم بأضافتها في قاعدة البيانات ويظهرها لي في داخل DATAGRID

3- وياليت تدلوني على موقع بالعربية عن التعامل مع قواعد البيانات مثل الاضافة والحذف والاستعلام والتحديث وغيرها .

ولكم مني ومن الفريق اجمل الشكر وارق التحايا

اخوكم ابو خالد

#2

السلام عليكم

لعمل تحديث بإستمرار قم بإنشاء إجراء sub يقوم بعملية التحديث

ثم أدرج عنصر من نوع Timer و قم بالشرط التالي

 Private Sub STD_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles STD.Tick
        If Me.DsMain1.HasChanges Then
            UpdateDataSet()
        End If
    End Sub

السؤال الثاني إستخدم السلوك Merge لعمل تحميل البيانات بعد التحديث بشكل مباشر

وذلك عن طريق إنشاء dataset جديدة تأخذ فقط التحديث ثم نرسل مافيها لقاعدة البيانات ثم نقوم بعملية ضم merge

لـ dataset الأصلية .

السؤال الثالث : إليك الوقع التالي

في المثال يتضح المقال

#3

اخي الغملاسي

اشكرك لأهتمامك

وياليت توضح لي كيف اعمل اجراء فرعي ومن ماذا يتكون

اي ما هي اكواد التحديث لأني بصراحة لا اعرف كيف اعملها

ولك الشكر

#4

السلام عليكم

الإجراء هو procedure سواءً كان Sub أو Function وظيفة , المهم يتم بهذا الشكل

  Public Sub UpdateDataSet()
        Dim DST As New DSMain
        Me.BindingContext(DsMain1, "Books").EndCurrentEdit()
        DST = CType(DsMain1.GetChanges, DSMain)
        Me.DAAuthors.Update(DST)
        Me.DsMain1.Merge(DST)
        Me.DsMain1.AcceptChanges()
        Me.SBInfo.Text = "تم تحديث بيانات المؤلف الحالي بنجاح"
    End Sub

في البداية إستنسخنا عنصر باسم DST من نوع DSMain الـ DSMain هي الـ DataSet الموجودة لدي ضمن المشروع

ليست التي على الـ Component Tray وإنما الموجودة في الـ Root اي مع النماذج Forms

الخطوة الثاني نقوم بتعطيل أي تعديل على الجدول Books

الخطوة الثالثة : نقوم بأخذ فقط التحديث الذي طرئ على الـ DataSet الأصلية وهي DSMain1 عن طريق السلوكGetChanges

الخطوة الرابعة : نستخدم الـ DataAdapter لعمل تحديث لقاعدة البينات وهو في هذا المثال باسم DAAuthors

الخطوة الخامسة : نقوم بعملية الضم Merge بحيث الذي تم تحديثه في قاعدة البيانات نود أن يكون متوفر في الـ DataSet

في الوقت الحالي .

الخطوة السادسة : نستخدم السلوك AcceptChanges بحيث يتم قبول التعديل الذي طرئ على الـ DataSet جراء الحدث Merge

فقط قم بتعديل مسميات العناصر بحيث توافق المشروع الذي تعمل عليه و بالتوفيق إن شاء الله .

ملاحظة : يمكنك أن تستخدم DataWizard ليقوم بعملية التحديث والحذف و الإضافة بشكل تلقائي

إختار إدراج عنصر جديد في المشروع ثم اختر DataWizard

في المثال يتضح المقال

#5

اخي الغملاسي

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

ولك جزيل الشكر مرة ثانية وكم انا ممنون لك بهذا الاهتمام

اخوك ابو خالد

#6

اخي الغملاسي

اطال الله في عمرك ونفع بعلمك

اخي كتبت الكود ولكن للأسف ما زبط معي

اين اكتب Public Sub UpdateDataSet() هل في نفس الفورم ام في زر التحديث ام اين

انا لا افهم كثيراً من المصطلحات التي انت تستعملها ياليت تشرح كيف يتم الموضوع واين يكون كتابة الكود

ولك جزيل الشكر والعرفان

اخوك ابو خالد

#7

السلام عليكم

الكود عبارة عن إجراء يكون في أي مكان اي غير محدد

لكن عن الضغط على زر التحديث تنادي هذا الإجراء بالشكل التالي

  Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
        Try
            UpdateDataSet()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

بالتوفيق إن شاء الله يا أبو خالد

في المثال يتضح المقال

#8

حبيبي الغملاسي

يعطيك الف عافية ويفقك ربي

وينفع بعلمك

لولاك ما ندري وش نسوي

#9

السلام عليكم

و يعطيك مليار عافية وربي يوفقك في الدنيا والأخرة

أقول بتسوي مليون شغله و شغله , العلم يا أبو خالد ليس حصر لا على الغملاسي و لا على غيره (*&*)

بالتوفيق يا طيب

في المثال يتضح المقال

#10

Public Sub UpdateDataSet()

Dim DST As New DSMain من اين اتيت بكلمة (DSMain)

Me.BindingContext(DsMain1, "Books").EndCurrentEdit() DsMain1 وهذه الكلمة ما المقصود بها

DST = CType(DsMain1.GetChanges, DSMain)

Me.DAAuthors.Update(DST)

Me.DsMain1.Merge(DST)

Me.DsMain1.AcceptChanges()

Me.SBInfo.Text = "تم تحديث بيانات المؤلف الحالي بنجاح"

End Sub

اخي الغملاسي

لديه بعض الاسئلة عن الكلمات التي امام كل جمله وكيف عرفتها

اتبعت الطريقه حقتك ولكن وضع تحتها خط

وهل هي متغيرات تم تعريفها

اذا كان كذلك هل اكتب في اعلى شاشة الكود استدعاءات لملفات او مكتبات معينه

ارجو الافادة مفصلاً اخي وبتوضيح الكود اكثر

#11

السلام عليكم

جواب السؤال الأول

الـ DSMain هي الـ DataSetObject التي ننشئها أثناء التصميم DesignTime شاهد الصورة المرفقة

أين تقبع الـ DataSetObject بعدما نقوم بإنشائها عبر إختيار Generate DataSet من القائمة Data

أو عن طريق الـ DataAdapter , وهي إختيارية من حيث المسمى.

جواب السؤال الثاني

وهو بخصوص EndCurrentEdit لابد أن نستخدم هذا السلوك ودون إستخدامه قد لا يتم حفظ البيانات

بسبب أن هذا السلوك يستخدم الواجهه IEditableObject ويقصد به من حيث المعنى الإصطلاحي أنه

يقوم بإقاف عملية التحرير والتعديل في البيانات لتكن جاهزة للحفظ في قاعدة البيانات .. والله أعلم

أخيراً الـ SBInfo هو عنصر من نوع StatusBar لعرض الأحداث التي تطرئ على البرنامج

الله أعلم , عفواً هل هنالك أسئلة أخرى ؟

أقول يا أبو خالد إن شاء الله مع الأيام راح تكتب الكود و أنت مغمض ..

post-17025-1115047553_thumb.gif

تم تعديل هذه المشاركة بواسطة الغملاسي في 2 مايو 2005 في 18:27

في المثال يتضح المقال

#12

والله اخي الغملاسي هذا الكود بالذات اتعبني ما ني عارف احله

القصور لديه حاصل والفهم محدود واخوك على المعكاز

لكن ان شاء الله اكتبه مغمض بوجودك معي

الله يعطيك العافيه ويرزق الذرية الصالحه

لكن برضه فيه سوال

Me.BindingContext(DsMain1, "Books").EndCurrentEdit()

DsMain1 هذه الكلمه لماذا وجدت هل هي متغير ام اسم اداه ام ماذا

يعطيك الف عافيه على سعة صدرك

لك فائق احترامي

اخوك ابو خالد

#13

السلام عليكم

الـ DSMain1 هو عنصر تم إستنساخه من العنصر DSMain

ما هي القصة بالضبط

حينما تقوم يا أبوخالد بإصدار DataSet عن طريق الـقائمة Data يقوم Visual Studio.NET

بإنشاء ملف من نوع يكون بإمتداد XSD وهو إختصار لـ XML Schema Definition

هذا الملف يعرف بـ Data about Data وهو عبارة عن معلومات عن قاعدة البيانات

كذلك يعرف بـ Metadata يتم تخزين معلومات عن كل من الجداول و الأعمدة التي بها و أنواع الأعمدة

المفاتيح الأساسية والفرعية اي كل من Tables Columns Data Types Primary Keys Foreign Keys

المهم أن الـ Visual Studio.NET يقوم بشكل تلقائي بإستنساخ عنصر منها ويركن

هذا العنصر في الـ Component Tray ويقوم بشكل تلقائي بإعطائهِ اسم بنفس الاسم تماماً مع رقم متسلسل

المرة الأول 1 إذا تم إستنساخ منه مرة أخرى سيعطيه 2 وهلم جرى .

وكما تعلم أن هذا العنصر وهو الـ DataSet عبارة عن نسخة مصغرة من قاعدة البيانات

تم إدراجها بسبب تقنية الـ Disconnection Environments فالبيانات تبقى فيها

بسبب الإنقطاع عن قاعدة البيانات حتى لا تتم قاعدة البيانات مفتوحة طوال عملِنا علي البرنامج

مما يسبب مخاطر عليها وكذلك ما يعرف بـ Scalability و عدم الضغط والتحميل الزائد على قاعدة البيانات أو

المستضيف Server ولهذه الأسباب و أسباب أخرى تم ولادة الـ DataSet لتحل هذه المشاكل

أما إذا كان سؤالك عن الـ BindingContext فهو عبارة عن Class يزودنا بكثير من الخصائص و السلوكيات

منها مثلاً في أي صف نحن الأن و كم عدد الصفوف في الجدول الحالي

وكذلك لإضافة صف جديد والكثير الكثير , هذا القالب يقوم بتوظيف عناصر القالب BindingManagerBase

كالتي ذكرتها لك للتو الحذف و الإضافة و معرفة بعض المعلومات عن الجدول كعدد الصفوف و الصف الحالي

وغير ذلك كثير .

والله أعلم

post-17025-1115159830_thumb.gif

تم تعديل هذه المشاركة بواسطة الغملاسي في 4 مايو 2005 في 01:39

في المثال يتضح المقال

#14

ياربي توفق اخي الغملاسي

وتجعل هذه المعلومات في ميزان حسناته وتمحو بها سئياته

ما ادري كيف أكفاءك على مجهودك الطيب معي

لكن ما اقدر اقدم لك شئ الا الدعاء لك بطول العمر وان يغنيك من واسع فضله ويرزقك المال والذرية الصالحه

شكراً اخي لك

لك فائق احترامي اخوك

اخوك ابو خالد

#15

بسم الله الرحمن الرحيم

مشاريع برامج تجارية كاملة VB6 &VB.NET2003

البريد الالكترونى:

ALMOHASEB2005@YAHOO.COM

PASSWORD: 000000

4/5/2005

ونسألكم الدعاء

#16

الاخ arabicfata

نسأل الله لك بطول العمر وزود الفهم

اخي نبي نشوف ردك على اسألتنا وحل مشاكلنا

واذا اردنا برامج تجاريه لن ننساك

ولك جزيل الشكر

#17

اخي الغملاسي

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

اخي ابي التحديث عن طريق الكود وليس عن طريق اضافة DSMian وياليت عندما تكتب الكود تشرح لي المقصود بكل كلمة تعنيها مثل dataset الاصلية والفرعيه والجداول والحقول حتى افهم الطريقه

انا اعرف اني ثقلت عليك ولكن تحملني انت استاذ وانا طالب وياكثر ما ضحى الاستاذ من اجل طلابه

شكراً لك اخي على سعة الصدر

#18

up

{وَاتَّقُواْ يَوْمًا تُرْجَعُونَ فِيهِ إِلَى اللّهِ ثُمَّ تُوَفَّى كُلُّ نَفْسٍ مَّا كَسَبَتْ وَهُمْ لاَ يُظْلَمُونَ} (281) سورة البقرة

br17.gif

برنامج الإتصلات الإدارية والارشيف الالكتروني

برنامج الخبير لنقاط البيع المباشرة

هذا الموضوع مغلق.

مواضيع مشابهة