Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用LINQ在WebService中自动完成_C#_Asp.net_Linq_Web Services_Linq To Sql - Fatal编程技术网

C# 使用LINQ在WebService中自动完成

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" />

我正在使用web服务使用Autocomplete。在我的web服务中,我使用LDS

问题是,当我尝试此代码时:

这是我在Default.aspx中调用webservice的UI代码:

<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();