0

助けてください。フォームの読み込みイベント中に入力したいリストボックスを持つ C# フォームがあります。項目をクリックすると、関連する情報がフォームのいくつかのテキスト ボックスに表示されるようにしたいのですが、以下のコードではリスト ボックスが読み込まれません。エラーは発生しませんが、値もロードされません。このサイトで私のリクエストに似た投稿を見つけましたが、役に立ちませんでした。

フォームの読み込みセクションにある私のコードは次のとおりです。

        string str = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=|DataDirectory|\\data.mdb;JetOLEDB:DatabasePassword=SomethingGoesHere";
        OleDbConnection con = new OleDbConnection(str);
        var ds = new DataSet();
        var adapter = new OleDbDataAdapter("SELECT Last_Name FROM Membership_Log", con);
        con.Open();
        adapter.Fill(ds);
        DataTable dt;
        dt = ds.Tables[0];

        View_Membership_Log_Listview.DataSource = dt;
        View_Membership_Log_Listview.DisplayMember = "Last_Name";
        var value = ds.Tables[0].Rows[0]["Last_Name"].ToString();
        var value2 = ds.Tables[0].Rows[0]["First_Name"].ToString();
        last_NameTextBox.Text = value;
        first_NameTextBox.Text = value2;
        con.Close();
4

1 に答える 1

0

変化する:

View_Membership_Log_Listview.DataSource = dt;
        View_Membership_Log_Listview.DisplayMember = "Last_Name";
        var value = ds.Tables[0].Rows[0]["Last_Name"].ToString();

に:

    Dictionary<string,string> d_Names = new Dictionary<string,string>();

foreach(DataRow row in ds.Tables[0].Rows)
{
d_Names.Add(row["Last_Name"].ToString(),row["Last_Name"].ToString()); //Last name is the    key, First name could be used as the value or visa versa if needed.
}

View_Membership_Log_Listview.DataSource = d_Names;
        View_Membership_Log_Listview.DisplayMember = "Key";
        View_Membership_Log_Listview.ValueMember = "Key";

これが役立つことを願っています.VSを目の前で開いていないので、間違いを許してください.

于 2013-08-21T09:17:44.177 に答える