0
Я хочу создать поиск с использованием linq, у меня есть таблица User в SQL с двумя столбцами nvarchar
FName и LName и PK идентификатора и другими столбцами.Оператор '> =' несовместим с типами операндов 'String' и 'Object'
ASPX:
<asp:TextBox ID="search" runat="server" AutoPostBack="True"
ontextchanged="search_TextChanged"></asp:TextBox> <br />
<asp:ListBox ID="found" runat="server" Height="400px" Width="300px"
AutoPostBack="True" DataSourceID="LinqUserSearch" DataTextField="Users"
DataValueField="Id">
</asp:ListBox>
<asp:LinqDataSource ID="LinqUserSearch" runat="server"
ContextTypeName="Zhotel.User" EntityTypeName="" GroupBy="Id"
OrderBy="FName, LName" OrderGroupsBy="key"
Select="new (key as Id, it as Users)" TableName="Users"
Where="FName >= @FName && LName >= @LName">
<WhereParameters>
<asp:ControlParameter ControlID="search" Name="FName" PropertyName="Text"
Type="String" />
<asp:ControlParameter ControlID="search" Name="LName" PropertyName="Text"
Type="String" />
</WhereParameters>
</asp:LinqDataSource>
, но во время выполнения приведенный выше код дает мне эту ошибку.
Operator '>=' incompatible with operand types 'String' and 'Object'
Я использую EF и ASP.NET 4.
Возможно, у вас есть проблема с экранированием персонажа? (из БД или даже литералов) –
@ d'alar'cop Я немного новичок, вы можете объяснить больше? –
ОК. Вы видите, как у вас есть текст, окруженный «» (двойные кавычки)? - иногда содержимое, содержащееся внутри, должно быть «экранировано», поскольку некоторые символы имеют особые значения - например, \ n = символ новой строки. Таким образом, обычно нужно «экранировать» (обратную косую черту), а также использовать двойные кавычки, как правило, как «или», в зависимости от того, какой язык вы используете. –