كيف يمكنني التحقق من وجود فارغة في DataView.RowFilter
سؤال
وعلى افتراض لقد عمود دعا وأريد للتحقق مما إذا A غير خالية أو فارغة، ما هي الطريقة الصحيحة للتحقق من ذلك باستخدام RowFilter في DataView في:
DataTable dt = GetData();
DataView dv = new DataView(dt);
dv.RowFilter = "A IS NOT NULL OR A IS NOT ''";
ما سبق لا يبدو قادرا على العمل بالرغم من ذلك.
المحلول
هل يرتبط صافي <3.5؟ إذا لم تتمكن من استخدام LINQ للتحقق من حالة هذا العامود.
وإلا هناك وظيفة Isnull(,)
في مثل T-SQL:
dv.RowFilter = "Isnull(a,'') <> ''";
نصائح أخرى
وأنا على افتراض أنك بحاجة إلى استرداد كافة السجلات حيث القيمة في العمود A ليست فارغة ولا ''
ووEXPR الصحيح هو:
dv.RowFilter = "A IS NOT NULL AND A <> ''";
ولاسترداد السجلات حلقة تصفية على dv.ToTable () مثل هذا:
foreach (DataRow dr in dv.ToTable().Rows)
Console.WriteLine(dr["A"]);
وهذا يجب أن تعمل ... الهتافات !!
ويمكنك إضافة
وdv.RowFilter = "CONVERT(Isnull(a,''), System.String) <> ''"
وإذا كان العمود يحتوي نوع بيانات الرقم كما ISNULL (أ، '') سيعود الرقم. أن وحدة التقييم من عدد <> 0 رمي استثناء.
لا تنتمي إلى StackOverflow