C# WinForms - DataGridView/SQL Compact - عدد صحيح سالب في عمود المفتاح الأساسي

StackOverflow https://stackoverflow.com/questions/38510

سؤال

لقد بدأت للتو في استخدام WinForms، واكتشفت، من خلال برنامج تعليمي رائع، سحر سحب جدول قاعدة البيانات إلى عرض التصميم للنموذج الرئيسي الخاص بي.لذا، كل شيء جميل، لقد حصلت على DataGridView الخاص بي مع تمثيل جميع الأعمدة بشكل جميل.

لكن...

عندما أقوم بتشغيل تطبيقي على ملف .sdf الجديد والفارغ هذا (حفظ فارغ للجدولين اللذين قمت بإنشائهما، وهما فارغان بحد ذاتهما)، أحصل على -1 في العمود المقابل لعمود المفتاح/الهوية الأساسي الخاص بي كلما حاولت لإنشاء هذا السجل الأول.

أي فكرة لماذا هذا يمكن أن يحدث؟إذا كان ذلك مفيدًا، فسيكون العمود عبارة عن int.

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

المحلول

نظرًا لأنه عمود هوية ولم تقم بحفظه في قاعدة البيانات بعد، فهو -1.أفترض هنا أن هذا قبل حفظ الجدول مرة أخرى في قاعدة البيانات، أليس كذلك؟تحتاج إلى إجراء الإدراج قبل أن يتم تعيين هذه القيمة بشكل صحيح.

نصائح أخرى

@Brian -1 يعد اختيارًا جيدًا للقيمة الافتراضية نظرًا لأنه من غير المحتمل أن تحتوي أي صفوف "حقيقية" على هويات أقل من الصفر.إذا تم تعيينه افتراضيًا على 0 أو 1، فسيكون هناك احتمال أن يتعارض مع صف موجود، مما يتسبب في انتهاك المفتاح الأساسي.

بالنسبة للتطبيقات التي تبقى دون اتصال وتقوم بإنشاء صفوف متعددة قبل الحفظ، من الممارسات الشائعة مواصلة العد التنازلي (-2، -3، -4) لهوية كل صف جديد.وبعد ذلك، عندما يتم حفظها، يمكن للخادم استبدالها بالقيمة "التالي" الحقيقية من الجدول.

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