سؤال

أنا أعمل على مشروع C# في هذه اللحظة التي هي بسيطة جدا.

لدي حالة مربع واثنين من الأزرار dataGridView.

عند تحميل النموذج في dataGridView يتم تعبئة بشكل صحيح.

ما أود القيام به هو ثم تحديث هذا الجدول كل 45 ثانية لتعكس أي تغييرات في قاعدة البيانات.

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

هل كانت مفيدة؟

المحلول

  1. إضافة Timer التحكم إلى النموذج الخاص بك.(إنه في فئة المكونات)
  2. تعيين Interval الملكية 45000 (القيمة تمثل ميلي ثانية)
  3. إما تعيين Enabled خاصية ضبط وقت True في "مصمم النموذج" أو في مكان ما في التعليمات البرمجية الخاصة بك.
  4. إضافة معالج مؤقت Tick الحدث (يمكنك الحصول على هذا من خلال النقر المزدوج توقيت)
  5. داخل Tick معالج تحديث dataGridView

معالج الخاص بك سوف تبدو مثل هذا:

private void timer1_Tick(object sender, EventArgs e)
{
    // Update DataGridView
}

إذا كنت تحتاج إلى تعليق التحديثات لسبب ما ، يمكنك الاتصال timer1.Stop() لإيقاف الموقت من تشغيل و استخدام timer1.Start() في بداية الأمر مرة أخرى.

نصائح أخرى

ومثل الآخرين قد اقترح، استخدم الموقت لإعادة استعلام قاعدة البيانات. الشيء الوحيد الذي أود أن أضيف هو أنه عند إعادة الاستعلام عن قاعدة بيانات، لا مجرد مجموعة مصدر بيانات وداتاغريدفيف إلى الجدول الجديد. بدلا من ذلك، دمج مع الجدول الموجود. والسبب في ذلك هو أنه إذا كان المستخدم في منتصف الشبكة على سبيل المثال النظر في صف معين، إذا قمت بإعادة تعيين مصدر البيانات إلى جدول جديد، فإن الشبكة بأكملها تحديث وأنها سوف تفقد مكانها. مزعج كما الجحيم! إذا كنت <م> دمج أنه على الرغم من أنها ستكون سلسة للمستخدم.

DataTable.Merge

وشيء واحد أن تكون على علم عند استخدام طريقة دمج هو أن الجدول يحتاج إلى مفتاح أساسي. الاختيار مزدوج للتأكد من أن DataTable ونفسها لديها المفتاح الأساسي. ليس دائما أنه لا تسحبه إلى الوراء من قاعدة البيانات. قد تحتاج إلى القيام بشيء ما مثل:

table.PrimaryKey = new DataColumn[] {table.Columns["ID"]};

استخدم عنصر تحكم مؤقت ثم قم بإجراء التحديثات الخاصة بك في الزيادات المحددة التي تحتاج إليها.

هل يمكن إنشاء الموقت أن تطلق كل 45 ثانية، وتحديث واجهة المستخدم الخاص بك من معالج حدث لها.

وتقصد أنني يجب ربط داتاغريدفيف مرة أخرى في الموقت معالج الأحداث؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top