C# 使用LINQ在WebService中自动完成
我正在使用web服务使用Autocomplete。在我的web服务中,我使用LDS 问题是,当我尝试此代码时: 这是我在Default.aspx中调用webservice的UI代码:C# 使用LINQ在WebService中自动完成,c#,asp.net,linq,web-services,linq-to-sql,C#,Asp.net,Linq,Web Services,Linq To Sql,我正在使用web服务使用Autocomplete。在我的web服务中,我使用LDS 问题是,当我尝试此代码时: 这是我在Default.aspx中调用webservice的UI代码: <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> <Services> <asp:ServiceReference Path ="WebService1.asmx" />
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path ="WebService1.asmx" />
</Services>
</asp:ToolkitScriptManager>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:AutoCompleteExtender ID="TextBox1_AutoCompleteExtender" runat="server"
DelimiterCharacters="" Enabled="True" ServicePath ="WebService1.asmx" ServiceMethod="ReturnEntity" EnableCaching="true" TargetControlID="TextBox1" CompletionSetCount ="1">
</asp:AutoCompleteExtender>
当我试图在浏览器中运行webservice并传递一些参数时,它会向我显示以下内容:
<?xml version="1.0" encoding="utf-8" ?>
- <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<string>Starr</string>
<string>Sally Jeans</string>
<string>Steven Kline</string>
<string>Steven Goldberg</string>
</ArrayOfString>
-
斯塔尔
莎莉牛仔裤
史蒂文·克莱恩
史蒂文·戈德伯格
这不会返回任何结果。我只想显示我的表中的列表,它是实体,列名是'name'
无法理解:(尝试使用并传入
如果仍在调用上下文中,则可以使用ToLower()
您是否尝试调用该方法(使用DataContext)除了使用“自动完成”之外?我最好的猜测是您的查询没有返回任何结果。请尝试使用sql server探查器确定您的调用发送到数据库的查询,然后查看在sql server management studio中执行该查询时会发生什么。@eoldre:在浏览器中查看web服务文件时,我可以看到结果ght是XML格式的。所以我假设它是从数据库中提取的。@DOT-NET对不起,结果是什么?如果它们在浏览器中,“不返回任何结果”是什么意思?@Martinho:请查看我的最新编辑。我发布了在浏览器中查看webservice时得到的XML文件。我不确定自动完成扩展程序的功能,但请确保使用DataContext的method的方法签名与正确工作的版本完全匹配。@.Net Dirty Whore-尝试的内容:Ar是否有任何结果?它们中是否有一个名称实际上是通过prefixText开始的?是否引发了异常?您是否尝试过调试此操作?@hunter:我正在尝试调试此操作。我发现,当我在ReturnEntity函数中使用断点时,在文本框中点击3次后会调用它。例如,ABCI认为您需要发布javascript@Hunter:我刚刚发布了dude,我的UI部分。请检查。@Hunter:我尝试使用上面的代码。它显示了以下错误:方法“StartsWith”有到SQL的转换,但重载“Boolean StartsWith(System.String,System.StringComparison)”没有。
[WebMethod]
public string[] ReturnEntity(string prefixText)
{
using (DataClasses1DataContext search = new DataClasses1DataContext())
{
string[] fullText = (from n in search.Entities
where n.Name.StartsWith(prefixText)
select n.Name).ToArray();
return fullText;
}
}
<?xml version="1.0" encoding="utf-8" ?>
- <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<string>Starr</string>
<string>Sally Jeans</string>
<string>Steven Kline</string>
<string>Steven Goldberg</string>
</ArrayOfString>
var result = from n in search.Entities
where n.Name.StartsWith(prefixText,
StringComparison.InvariantCultureIgnoreCase)
select n.Name;
return result.ToArray();
var result = from n in search.Entities
where n.Name.ToLower().StartsWith(prefixText.ToLower())
select n.Name;
return result.ToArray();