0

データベースでオートコンプリートを作成したいと考えてtextboxいます。

階層化されたアーキテクチャ (モデル、DAL、BLL、プレゼンテーション) でアプリケーションをプログラミングしています。

arraylistデータベース内の選択コマンドを読み取って返す を使用したメソッドを既に作成しましたcombobox

しかし、に挿入しようとするとtextbox、何も起こりません...提案は表示されません。

フォーラムで何かを探しましたが、1 つのレイヤーの例が見つかりました。レイヤーで開発しているため、選択コマンドで入力するプロパティAutoCompleteStringCollectionをインクリメントできません。DAL

この問題を解決する方法を知っている人がいたら、私に説明してください!

追加情報: winFormC# と SQL Server を使用しています。

4

2 に答える 2

0

助けてくれてありがとう!!私はあなたの提案を使用し、いくつかの小さな変更を加えましたが、それは私にとってはうまくいきます...

唯一の問題は私のメソッドリストであることが判明しました.List < String >を変更すると、状況は改善されました。不思議に思っている人のために、これが私がそれを行う方法です:

ダル層:

public List<string> LoadList()
{
List<string> tagsList = new List<string>();

using (SqlConnection connection = new SqlConnection(ADados.StringDeConexao))
{
connection.Open();
using (SqlCommand command = connection.CreateCommand())
{
command.CommandText = "SELECT column FROM table";

using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
if (!reader.IsDBNull(0))
tagsList.Add(reader.GetString(0));
}
reader.Close();
}
connection.Close();
return tagsList;
}

プレゼンテーション層 (イベント TextChanged):

PedidoBLL pedido = new PedidoBLL();

txtName.AutoCompleteMode = AutoCompleteMode.Suggest;
txtName.AutoCompleteSource = AutoCompleteSource.CustomSource;
AutoCompleteStringCollection popula = new AutoCompleteStringCollection();
popula.AddRange(pedido.LoadList().ToArray());
txtName.AutoCompleteCustomSource = popula;

BLLレイヤーでは、DALメソッドLoadListを呼び出して返すだけです...

于 2016-10-31T02:10:01.647 に答える