我一直在嘗試解決這個問題很長一段時間,但是我可以圍繞什麼確切問題在這裏。 我有一個ID,first_name和姓氏的表。我試圖從該表中拉出一行,將其存儲在數組中,然後將其顯示在列表框中。這是我得到的從表中獲取結果,將它們存儲在數組中然後顯示它們
public Contacts[] getAllContacts()
{
List<Contacts> theContactList = new List<Contacts>();
try
{
conn = new MySqlConnection(cs);
conn.Open();
string stm = "select id, first_name, surname from contacts";
MySqlCommand cmd = new MySqlCommand(stm, conn);
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Contacts theContact = new Contacts();
theContact.contactID = rdr.GetInt32("id");
theContact.first_name = rdr.GetString("first_name");
theContact.surname = rdr.GetString("surname");
theContactList.Add(theContact);
}
}
catch (MySqlException ex)
{
System.Diagnostics.Debug.WriteLine("Error: {0}", ex.ToString());
}
finally
{
if (rdr != null)
{
rdr.Close();
}
if (conn != null)
{
conn.Close();
}
}
if (theContactList.Count > 0)
{
return theContactList.ToArray();
}
else
{
return null;
}
}
這是我用來拉值的方法,現在在另一個類中,我使用它來顯示值到列表框中。
ContactManager contactMan = new ContactManager();
public Form1()
{
InitializeComponent();
reloadContacts();
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listBox1.SelectedIndex > 0)
{
Contacts currentContact = (Contacts)listBox1.SelectedItem;
textBox1.Text = currentContact.contactID.ToString();
textBox2.Text = currentContact.surname;
textBox3.Text = currentContact.first_name;
}
}
private void reloadContacts()
{
listBox1.Items.Clear();
Contacts[] allContacts = contactMan.getAllContacts();
foreach (Contacts b in allContacts)
{
listBox1.Items.Add(b);
}
}
現在真正讓我困惑的是顯示內容。我一直在改變我的桌子,我發現在列表框中它會爲每一行顯示「ProjectName.Contacts」,但列表框中的第一項在選中時不會顯示任何信息,而別人呢。
如何解決此問題的任何幫助?
謝謝!
謝謝,我添加了一個重寫方法,因爲我想用這個listBox玩一下。 – CodingNub 2014-09-20 08:52:29