2

n_groups テーブルを含む .MDB ファイルと、参照する必要がある 3 つの列 (NUID、strName、および ntype) があります。クエリは意図したとおりに機能しますが、リストボックスは空で表示され、結果はありません。

結果をリストボックスに入力するにはどうすればよいですか?

これは私がこれまでに持っているものです:

var conn = new OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;" + 
    "data     source=C:\\menus\\newmenus\\menu.mdb;Jet " + 
    "OLEDB:Database Password=@#@#@#");

var ds = new DataSet();
var adapter = new OleDbDataAdapter(
    "SELECT nUID, strName FROM n_groups where ntype=1", conn);
conn.Open();
adapter.Fill(ds);
conn.Close();
var value = ds.Tables[0].Rows[0]["strName"].ToString();

listBox1.DataSource = value;

2 番目のリスト ボックス (ピックリスト ソーターなど) を使用してリストを並べ替えたいとします。リスト ボックス内の項目の位置を呼び出す方法はありますか?

並べ替えのために、結果の内容を上から下に並べ替えることができる必要があります。

次のようなピックリストのソート方法を使用するつもりでした: デモ ピックリスト ソーター

しかし、左のリストにデータを入力できません。C# を使用して MDB からデータを取得し、結果をリストボックスに入れるにはどうすればよいですか?

4

1 に答える 1

2

もっと簡単な方法があります...代わりにこの方法を試してください

How can I make the results populate a listbox?

これは半疑似コードです:

dt DataTable
dt =  ds.Tables[0]
listbox1.datasource = dt
listbox1.datamember = "nameoffield"
listbox1.databind()

これは基本的にデータテーブル全体を取得し、それをコントロールにバインドします。.SelectedIndexまたはで各オブジェクトを参照できます。.SelectedItem

あなたが探しているのはこれだと思います:

追加のクリックイベントで:

listbox2.items.add(listbox1.selecteditem)

削除のクリックイベントで

listbox2.items.removeat(listbox2.selectedindex)
于 2013-07-11T04:29:39.840 に答える