لماذا يتم إلقاء القيمة غير الصالحة؟
-
23-09-2019 - |
سؤال
لقد حصلت على devexpress textedit وهي قاعدة بيانات إلى مجموعة بيانات.
الحقل هو نسبة مئوية اختيارية ، (نوع البيانات المزدوج).
عندما يتم تحميل السجل ولا توجد قيمة في الحقل ، كل شيء على ما يرام.
ومع ذلك ، إذا قمت بكتابة شيء ما في الحقل (أي 100) ثم تريد إزالته بعد ذلك ، أحصل على قيمة غير صالحة.
لماذا يحدث هذا ، وكيف يمكنني إزالته؟
ليس لدي أي قناع أو أي نوع من التحقق الصريح في هذا الحقل.
المحلول
لقد حلت هذا بمساعدة بريندون Muck في منتديات Devexpress.
كان أحد textedit الخاص بي ملزماً بخاصية النص بدلاً من editvalue (يجب أن يكون كل شيء ملزماً بالإحداثي)
أيضا ، لكل بريندون
حذف النص خارج عنصر التحكم TextedIt لا يعين الحقل على Null. يجب عليك التعامل مع الحدث EditValuechanged وتعيين القيمة يدويًا على Null عند اكتشاف سلسلة فارغة.
لذلك ، لقد قمت بإنشاء طريقة للتعامل معها
Private Sub SetTextEditToNull(ByVal sender As TextEdit)
If String.IsNullOrEmpty(sender.EditValue.ToString.Trim()) And (Not sender.EditValue Is DBNull.Value) Then
sender.EditValue = DBNull.Value
End If
End Sub
وفي معالج الحدث الخاص بي ، أستخدم:
SetTextEditToNull(CType(sender, TextEdit))