עבור לתוכן

VB.NET או C#: בעיה בExpression של Datatable.Select.

Featured Replies

פורסם

שלום לכולם, אני חדש וטרי...

יש לי בעיה באקספריישן של DataTable.Select

אם אני כותב כך,

    Dim sFilter As String
Dim dataR() As DataRow = DataTableName.Select("LastName Like '" & sFilter & "'")

וזה עובד מצויין אלא אם כן הערך מכיל גרש('), שאז זה מחזיר שגיאה: Syntax error: Missing operand before 'Like' operator. (במקרה זה ערך הsFilter היה 123', הערך כמובן נמצא בטבלה. איך עושים למצוא ערך בטבלה המכיל תו מיוחד?

הסתכלתי בעזה והבנתי שצריך לתחום בסוגריים מרובעות את הגרש. ניסיתי, ובLINQ זה באמת עובד, אבל בDataTable, לא!

מה אפשר לעשות?

תודה רבה מראש!

פורסם

צריך בשביל זה escaping. חפש בגוגל sql escaping בשביל דוגמאות.

פורסם
  • מחבר

תודה רבה!

אני כמובן חיפשתי באינטרנט, אבל לא היה לי את מית המפתח הזו escaping, ממש תודה, תוך רגע חמישים תשובות...

לתועלת המבקרים הקוד שצריך להוסיף זה החלפת גרש בשניים:

כזאת פונקצייה:

  Function Func(ByVal StrFilter As String) As String
Return StrFilter.Replace("'", "''")
End Function

ואח"כ עובד חלק:


Dim sFilter As String = "123''"
Dim dataR() As DataRow = DataTableName.Select("LastName Like '" & Func(sFilter) & "'")

שניצל, שוב תודה!

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים