كيف يمكنني التحقق من وجود فارغة في DataView.RowFilter

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

  •  22-08-2019
  •  | 
  •  

سؤال

وعلى افتراض لقد عمود دعا وأريد للتحقق مما إذا 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 رمي استثناء.

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