0

ASP.net/SQL Server で奇妙な問題に直面しましたが、何が問題なのか本当にわかりません。Web サービスからの予測結果を見つける AutoCompleteExtender があります。Web サービスにフィードしている SQL Server 2008 データベースの照合順序を変更せざるを得なくなるまで、常に英語と非英語の両方の文字でうまく機能していました。

このデータベースの照合と、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();

    }
4

1 に答える 1

0

解決策は、Windows フォルダーの .net フレームワーク フォルダーの下にある Web サイトの一時フォルダーを削除することです。次に Web サイトをコンパイルしてビルドすると、問題はなくなります。

于 2012-03-16T16:04:49.360 に答える