AutoCompleteExtender странная проблема - PullRequest
0 голосов
/ 04 мая 2011

Я столкнулся со странной проблемой в ASP.net/SQL Server и действительно не могу выяснить, в чем проблема. У меня есть AutoCompleteExtender, который узнает прогнозируемые результаты от веб-службы. Все это время прекрасно работало как с английскими, так и с неанглийскими символами, пока меня не заставили изменить параметры сортировки базы данных SQL Server 2008, которая питала веб-сервис.

Ничего не изменилось, кроме сопоставления этой базы данных и типа столбца, который был изменен с Nvarchar на Varchar. SQL-сервер показывает правильные результаты при выполнении запроса, но:

Проблема в том, что при наборе текста на английском языке в текстовом поле autocompleteextender он отвечает немедленно, но когда я ввожу там неанглийское слово, я должен НАЖАТЬ клавишу BACKSPACE, чтобы удалить последний символ, чтобы он отвечал. Моя сортировка базы данных: SQL_Latin1_General_CP1256_CI_AS.

Я не могу понять, почему это странное поведение проявляется при вводе неанглийских символов.

Вот код веб-службы, прикрепленный к моему ajax autocompleteextender:

[WebMethod(EnableSession = true)]
    [System.Web.Script.Services.ScriptMethod]
    public string[] GetCompletionListByVT(string prefixText, int count)
    {
        List<string> returnData = new List<string>();
        try
        {
            string connStr = ConfigurationManager.ConnectionStrings["CS"].ConnectionString;
            SqlConnection objconnection = new SqlConnection(@connStr);
            string strsql = "SELECT TOP 10 CompanyName FROM ViewAutoCompleteWSFeed WHERE (CompanyName LIKE '%" + prefixText+"" + "%');";
            objconnection.Open();          
             // strsql = "SELECT TOP 10 CompanyName FROM ViewAutoCompleteWSFeed WHERE (CompanyName LIKE '%" + prefixText + "%' OR Business_Landline_Phone_1 LIKE '%" + prefixText + "%' OR Business_Landline_Phone_2 LIKE '%" + prefixText + "%' OR MobileNumb1 LIKE '%" + prefixText + "%' OR MobileNumb2 LIKE '%" + prefixText + "%' OR EmailAddress LIKE '%" + prefixText + "%' OR Business_Address LIKE '%" + prefixText + "%' OR htCompanySN LIKE '%" + prefixText + "%' OR htCompanyNo LIKE '%" + prefixText + "%' OR Notes LIKE '%" + prefixText + "%');";
            SqlCommand objcommand = new SqlCommand(strsql, objconnection);
            SqlDataReader dr = objcommand.ExecuteReader();
            while (dr.Read())
            {
                returnData.Add(dr["CompanyName"].ToString());
            }

            objconnection.Close();
            return returnData.ToArray();
        }
        catch (Exception ex)
        {
            returnData.Add(prefixText);
        }

        return returnData.ToArray();

    }

1 Ответ

0 голосов
/ 16 марта 2012

Решение состоит в том, что вы удаляете временную папку для вашего сайта в папке .net framework в папке Windows. В следующий раз, когда вы скомпилируете и создадите свой сайт, проблема исчезнет.

...