قارن التواريخ في dataview.rowfilter؟
-
01-10-2019 - |
سؤال
أنا أخدش رأسي على شيء غبي إلى حد ما ولكن يبدو أنه صعب.
DataView dvFormula = dsFormula.Tables[0].DefaultView;
dvFormula.RowFilter = "'" + startDate.ToString("yyyyMMdd") + "' < EndDate OR EndDate = '19000101'";
dvFormula.Sort = "FromDate ASC";
النتيجة هي:
لا يمكن إجراء "<" التشغيل على النظام.
من فضلك قل لي ما هي أفضل طريقة لحل هذه المشكلة.
مقدر جدا!
المحلول
تحتاج إلى لفرة التواريخ الخاصة بك مع #، وليس من العلامات الفاصلة.
dvFormula.RowFilter = "#" + startDate.ToString("MM/dd/yyyy") + "# < EndDate OR EndDate = #1/1/1900#";
نصائح أخرى
هذا هو الحل. جرب هذا:
filter = " (Date >= #" +
Convert.ToDateTime(txtFromDate.Text).ToString("MM/dd/yyyy") +
"# And Date <= #" +
Convert.ToDateTime(txtToDate.Text).ToString("MM/dd/yyyy") +
"# ) ";
اعتمادًا على مزود البيانات الخاص بك ، قد تحتاج إلى الهروب من التواريخ مع #
الشخصية بدلا من '
حرف. بالإضافة إلى ذلك ، أود تنسيق تواريخك بالتنسيق YYYY-MM-DD
للتأكد من أنه يمكن الاعتراف به كتاريخ بشكل صحيح.
لا تنتمي إلى StackOverflow