0

我在 ASP.net/SQL Server 中遇到了一个奇怪的问题,并且真的无法找出问题所在。我有一个 AutoCompleteExtender,它可以从 Web 服务中找出预测的结果。在我被迫更改为 Web 服务提供数据的 SQL Server 2008 数据库的排序规则之前,它一直都可以很好地处理英文和非英文字符。

除了这个数据库的排序规则和从 Nvarchar 更改为 Varchar 的列类型之外,没有任何变化。SQL 服务器在执行查询时显示正确的结果,但是:

问题是,在自动完成扩展器文本框中输入英文时,它会立即响应,但是当我在那里输入一个非英文单词时,我应该按 BACKSPACE 键删除最后一个字符以便它响应。我的数据库排序规则是 SQL_Latin1_General_CP1256_CI_AS。

我不明白为什么在输入非英文字符时会出现这种奇怪的行为。

这是附加到我的 ajax 自动完成扩展器的 Web 服务代码:

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

    }
4

1 回答 1

0

解决方案是删除 Windows 文件夹中 .net 框架文件夹下的网站临时文件夹。下次编译和构建网站时,问题就消失了。

于 2012-03-16T16:04:49.360 回答