Windows フォーム アプリケーションで Google と同じように機能する検索機能を実装しています。次のようにオートコンプリートを実装しました。
private void MemberSearch()
{
// Name Search
ConnectionClass.GetInstance().connection_string = Properties.Settings.Default.MindMuscleConnectionString;
ConnectionClass.GetInstance().Sql = "select MemberInfo.memberName from MemberInfo";
DataSet ds = ConnectionClass.GetInstance().GetConnection;
AutoCompleteStringCollection name = new AutoCompleteStringCollection();
for (int x = 0; x < ds.Tables[0].Rows.Count; x++)
{
name.Add(ds.Tables[0].Rows[x].ItemArray.GetValue(0).ToString());
}
memberNameSearchTxtBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
memberNameSearchTxtBox.AutoCompleteSource = AutoCompleteSource.CustomSource;
memberNameSearchTxtBox.AutoCompleteCustomSource = name;
// ID Search
ConnectionClass.GetInstance().Sql = "select MemberInfo.memberID from MemberInfo";
ds = ConnectionClass.GetInstance().GetConnection;
AutoCompleteStringCollection id = new AutoCompleteStringCollection();
for (int x = 0; x < ds.Tables[0].Rows.Count; x++)
{
id.Add(ds.Tables[0].Rows[x].ItemArray.GetValue(0).ToString());
}
memberIdSearchTxtBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
memberIdSearchTxtBox.AutoCompleteSource = AutoCompleteSource.CustomSource;
memberIdSearchTxtBox.AutoCompleteCustomSource = id;
}
質問:
このオートコンプリートは問題なく機能しますが、レコード数が数百万件以上の場合、この方法で問題ないのではないかと考えています。FormLoad
イベントでこのメソッドを呼び出しています。これを行うより効率的な方法はありますか?