كيف يمكنك تحديث datagridview في C# كل دقيقة
-
03-07-2019 - |
سؤال
أنا أعمل على مشروع C# في هذه اللحظة التي هي بسيطة جدا.
لدي حالة مربع واثنين من الأزرار dataGridView.
عند تحميل النموذج في dataGridView يتم تعبئة بشكل صحيح.
ما أود القيام به هو ثم تحديث هذا الجدول كل 45 ثانية لتعكس أي تغييرات في قاعدة البيانات.
أنا أبحث عن اقتراحات على تقنية لتحقيق ذلك.لقد تم البحث عن معلومات واضحة ولكن يبدو تفتقر إلى حد ما.
المحلول
- إضافة
Timer
التحكم إلى النموذج الخاص بك.(إنه في فئة المكونات) - تعيين
Interval
الملكية45000
(القيمة تمثل ميلي ثانية) - إما تعيين
Enabled
خاصية ضبط وقتTrue
في "مصمم النموذج" أو في مكان ما في التعليمات البرمجية الخاصة بك. - إضافة معالج مؤقت
Tick
الحدث (يمكنك الحصول على هذا من خلال النقر المزدوج توقيت) - داخل
Tick
معالج تحديثdataGridView
معالج الخاص بك سوف تبدو مثل هذا:
private void timer1_Tick(object sender, EventArgs e)
{
// Update DataGridView
}
إذا كنت تحتاج إلى تعليق التحديثات لسبب ما ، يمكنك الاتصال timer1.Stop()
لإيقاف الموقت من تشغيل و استخدام timer1.Start()
في بداية الأمر مرة أخرى.
نصائح أخرى
ومثل الآخرين قد اقترح، استخدم الموقت لإعادة استعلام قاعدة البيانات. الشيء الوحيد الذي أود أن أضيف هو أنه عند إعادة الاستعلام عن قاعدة بيانات، لا مجرد مجموعة مصدر بيانات وداتاغريدفيف إلى الجدول الجديد. بدلا من ذلك، دمج مع الجدول الموجود. والسبب في ذلك هو أنه إذا كان المستخدم في منتصف الشبكة على سبيل المثال النظر في صف معين، إذا قمت بإعادة تعيين مصدر البيانات إلى جدول جديد، فإن الشبكة بأكملها تحديث وأنها سوف تفقد مكانها. مزعج كما الجحيم! إذا كنت <م> دمج م> أنه على الرغم من أنها ستكون سلسة للمستخدم.
وشيء واحد أن تكون على علم عند استخدام طريقة دمج هو أن الجدول يحتاج إلى مفتاح أساسي. الاختيار مزدوج للتأكد من أن DataTable ونفسها لديها المفتاح الأساسي. ليس دائما أنه لا تسحبه إلى الوراء من قاعدة البيانات. قد تحتاج إلى القيام بشيء ما مثل:
table.PrimaryKey = new DataColumn[] {table.Columns["ID"]};
استخدم عنصر تحكم مؤقت ثم قم بإجراء التحديثات الخاصة بك في الزيادات المحددة التي تحتاج إليها.
هل يمكن إنشاء الموقت أن تطلق كل 45 ثانية، وتحديث واجهة المستخدم الخاص بك من معالج حدث لها.
وتقصد أنني يجب ربط داتاغريدفيف مرة أخرى في الموقت معالج الأحداث؟