لماذا هو بلدي داتاغريدفيو.روفيلتر لا يعمل.أستمر في تلقي رسالة خطأ في بناء الجملة
-
23-09-2019 - |
سؤال
طلبي لديه داتاتابل بالسكان ويربط ذلك إلى داتاغريدفيو عن طريق تعيين خاصية داتاسورس.
في وقت التشغيل أريد تصفية هذا الجدول.عندما ينقر المستخدم على زر تشغيل التعليمات البرمجية التالية:
dataManager.VDMSTables.DataTable.DefaultView.RowFilter = column + " LIKE '%" + criteria + "%'";
يتم ملء جميع الفئات بشكل صحيح.في وقت التشغيل عندما أصل إلى هذا السطر ، أتلقى رسالة الخطأ التالية:
خطأ في بناء الجملة:في عداد المفقودين المعامل بعد مشغل 'البيانات'.المتغيرات التي أستخدمها لبناء روفيلتر يتم ملؤها بشكل صحيح.حتى عندما كنت من الصعب رمز سلسلة ما زلت الحصول على هذا الخطأ نفسه.لم؟
المحلول
ماذا تبدو السلسلة الفعلية التي تقوم بإنشائها عند عرضها في مصحح الأخطاء?كلمة "البيانات" لا تظهر في هناك, يفعل ذلك?
إذا كان الأمر كذلك ، فإنه يخبرك أن البيانات هي كلمة محجوزة وتحتاج إلى وضع علامة عليها على هذا النحو.كما هو الحال في:
dataManager.VDMSTables.DataTable.DefaultView.RowFilter
= String.Format("[{0}] LIKE '%{1}%'"
, column
, YourSingleQuoteEscape(criteria) );
التي سوف تنتج:
"[Data] like '%strawberries%'"
...والتي يجب تحليل بشكل صحيح ل روفيلتر الخاص بك.