Как убрать чувствительность к регистру при поиске в поле данных ASP.Net Query Extender?
Я применил расширитель запросов к своему текстовому полю для трех полей. Работает, но чувствителен к регистру. Например, если поле имени пользователя имеет имя "AWAIS", и я ищу "awais", оно не выполняет поиск и наоборот. Как я могу удалить чувствительность?
Мой код
<td>
<asp:LinqDataSource ID="LinqDataSource1" runat="server" ContextTypeName="BookStore.Bussines.Entities.BookStoreEntities"
OnSelecting="LinqDataSource1_Selecting">
</asp:LinqDataSource>
<asp:QueryExtender ID="qeSearch" runat="server" TargetControlID="LinqDataSource1">
<asp:SearchExpression DataFields="DISTRIBUTOR_NAME,DISTRIBUTOR_CODE,DISTRIBUTOR_URL" SearchType="Contains">
<asp:ControlParameter ControlID="txtSearchDistributor" />
</asp:SearchExpression>
</asp:QueryExtender>
</td>
3 ответа
Согласно документации:
Чувствительность к регистру в поисковом выражении зависит от поставщика LINQ, указанного в элементе управления QueryExtender.
Если поставщик LINQ, который вы используете в элементе управления QueryExtender, поддерживает чувствительность к регистру, вы можете использовать свойство ComparisonType для включения или игнорирования чувствительности к регистру.
Другая возможность - сопоставление базы данных
Возможно, ваша база данных настроена с учетом регистра. Несколько ссылок, если вы используете SQL Server.
Попробуй это:
Задавать SearchExpression.ComparisonType
в StringComparison.OrdinalIgnoreCase
<asp:SearchExpression DataFields="DISTRIBUTOR_NAME,DISTRIBUTOR_CODE,DISTRIBUTOR_URL" SearchType="Contains" ComparisonType=StringComparison.OrdinalIgnoreCase>
<asp:ControlParameter ControlID="txtSearchDistributor" />
</asp:SearchExpression>
https://msdn.microsoft.com/en-us/library/system.stringcomparison%28v=vs.110%29.aspx