拜托,我需要一些帮助。我有一个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();
答案 0 :(得分: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在我面前开放所以请原谅任何错误。