2011-05-04 42 views
0

我在ASP.net/SQL Server中遇到了一個奇怪的問題,真的無法找出問題所在。我有一個AutoCompleteExtender,可以從Web服務中找出預測結果。在我被迫更改提供web服務的SQL Server 2008數據庫的排序規則之前,它一直在使用英語和非英語字符。AutoCompleteExtender奇怪的問題

沒有什麼改變,但是這個數據庫和從Nvarchar改變爲Varchar的列類型的排序規則。 SQL服務器在執行查詢時顯示結果正確,但是:

問題是,在autocompleteextender文本框中輸入英文時,它立即作出響應,但是當我在那裏輸入非英語單詞時,我應該按下BACKSPACE鍵以刪除最後一個字符,以便它響應。我的數據庫排序規則是SQL_Latin1_General_CP1256_CI_AS。

我不明白爲什麼在輸入非英文字符時會暴露這種奇怪的行爲。

這是貼在我的AJAX autocompleteextender 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(); 

    } 

回答

0

解決方法是刪除臨時文件夾在Windows文件夾中的.NET Framework文件夾下你的網站。 下次您編譯並構建您的網站時,問題就會消失。