これについての正しい方法がわかりません。AutoCompleteExtender とスクリプト マネージャーを用意しました。データベース テーブルからデータを取得してオートコンプリートに入力することができません。私はすべてを見てきましたが、実際にSQLコンパクトテーブルからデータを取得しようとしていますが、SQLコンパクトサーバーへの接続方法に特に関連するフォーラムトピックはないようです.. Web.config ファイルと、ConfigurationManager の C# コード ビハインドでそれを使用したいと考えています。
いずれにせよ、ここに私のASPがあります:
<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" >
</ajaxToolkit:ToolkitScriptManager>
</asp:TextBox><ajaxToolkit:AutoCompleteExtender
ID="AutoCompleteExtender1"
TargetControlID="ClientSearch"
runat="server"
ServiceMethod="GetCompletionList"
MinimumPrefixLength="1"
UseContextKey="True">
</ajaxToolkit:AutoCompleteExtender>
<asp:Button ID="SearchSubmit" runat="Server" Text="Search" />
これが私のC#コードビハインドです:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
public static string[] GetCompletionList(string prefixText, int count, string contextKey)
{
string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection conn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("SELECT TOP " + count + " Name FROM Current WHERE Name LIKE '" + prefixText + "%'", conn);
SqlDataReader oReader; conn.Open(); List<string> CompletionSet = new List<string>();
oReader = cmd.ExecuteReader(CommandBehavior.CloseConnection); while (oReader.Read()) CompletionSet.Add(oReader["Name"].ToString()); return CompletionSet.ToArray();
}
}
ここに私の Web.config ConnectionString があります:
<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=|DataDirectory|\Clients.sdf" providerName="System.Data.SqlServerCe.4.0" />
<add name="ClientsEntities" connectionString="metadata=res://*/App_Code.Model.csdl|res://*/App_Code.Model.ssdl|res://*/App_Code.Model.msl;provider=System.Data.SqlServerCe.4.0;provider connection string="data source=|DataDirectory|\Clients.sdf"" providerName="System.Data.EntityClient" />
</connectionStrings>
ここで何か間違ったことをしている可能性が高いです。誰かが私を正しい方向に向けることができますか?