لماذا هو بلدي داتاغريدفيو.روفيلتر لا يعمل.أستمر في تلقي رسالة خطأ في بناء الجملة

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

سؤال

طلبي لديه داتاتابل بالسكان ويربط ذلك إلى داتاغريدفيو عن طريق تعيين خاصية داتاسورس.

في وقت التشغيل أريد تصفية هذا الجدول.عندما ينقر المستخدم على زر تشغيل التعليمات البرمجية التالية:

dataManager.VDMSTables.DataTable.DefaultView.RowFilter = column + " LIKE '%" + criteria + "%'";

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

خطأ في بناء الجملة:في عداد المفقودين المعامل بعد مشغل 'البيانات'.المتغيرات التي أستخدمها لبناء روفيلتر يتم ملؤها بشكل صحيح.حتى عندما كنت من الصعب رمز سلسلة ما زلت الحصول على هذا الخطأ نفسه.لم؟

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

المحلول

ماذا تبدو السلسلة الفعلية التي تقوم بإنشائها عند عرضها في مصحح الأخطاء?كلمة "البيانات" لا تظهر في هناك, يفعل ذلك?

إذا كان الأمر كذلك ، فإنه يخبرك أن البيانات هي كلمة محجوزة وتحتاج إلى وضع علامة عليها على هذا النحو.كما هو الحال في:

dataManager.VDMSTables.DataTable.DefaultView.RowFilter 
    = String.Format("[{0}] LIKE '%{1}%'"
        , column
        , YourSingleQuoteEscape(criteria) );

التي سوف تنتج:

"[Data] like '%strawberries%'"

...والتي يجب تحليل بشكل صحيح ل روفيلتر الخاص بك.

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