2013-04-09 2 views
0

У меня есть текстовое поле, менеджер сценариев и автозаполняющий расширитель на странице aspx. Я пытаюсь просто сделать автоматическое заполнение в текстовое поле и в настоящее время ничего не получаю. Что мне не хватает? Когда я пытаюсь отлаживать код, точка прерывания никогда не выходит за пределы первой фигурной скобки в методе GetComplete. Я на VS2010Ajax AutcompletExtender не возвращает результатов

разметки:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" 
    CodeBehind="Default.aspx.cs" Inherits="AjaxAutocomplete._Default" %> 

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %> 

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
</asp:Content> 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
    <asp:AutoCompleteExtender ID="TextBox1_AutoCompleteExtender" runat="server" 
     DelimiterCharacters="" Enabled="True" ServiceMethod="GetComplete" MinimumPrefixLength="3" TargetControlID="TextBox1"> 
    </asp:AutoCompleteExtender> 

</asp:Content> 

код позади:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.Data.SqlClient; 
using System.Configuration; 

namespace AjaxAutocomplete 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
     [System.Web.Script.Services.ScriptMethod] 
     [System.Web.Services.WebMethod] 
     public static List<string> GetComplete(string Prefixtetxt) 
     { 
      List<string> returnList = new List<string>(); 
      string cs = ConfigurationManager.ConnectionStrings["dbcs"].ConnectionString; 
      using (SqlConnection conn = new SqlConnection(cs)) 
      { 
       conn.Open(); 
       using (SqlCommand cmd = new SqlCommand()) 
       { 
        cmd.CommandType = CommandType.StoredProcedure; 
        SqlParameter p = new SqlParameter("@drug_name", Prefixtetxt); 
        //cmd.Parameters.AddWithValue("@drug_name", p); 
        cmd.Parameters.Add("@drug_name", SqlDbType.VarChar); 
        using (SqlDataReader reader = cmd.ExecuteReader()) 
        { 
         returnList.Add(Convert.ToString(reader["drug_name"])); 

        } 
       } 


      } 
      return returnList; 

     } 
    } 
} 

sproc из Sql Server

create proc spFindAllDrugs 
@drug_name varchar(100) 
as 
begin 
select distinct drug_name 
    from rx 
    where drug_name like '%' + @drug_name + '%' 
end 

ответ

1

Похоже, вы не связывая SqlCommand с соединение или указание команде имени вашей хранимой процедуры. Попробуйте изменить код, как показано.

 using (SqlCommand cmd = new SqlCommand("spFindAllDrugs")) 
     { 
      cmd.Connection = conn; 
      cmd.CommandType = CommandType.StoredProcedure; 
Смежные вопросы