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 回答