我有这段代码:
listView10.Items.Clear();
MySqlConnection con = new MySqlConnection("Server=166.62.27.186;Database=xxxx;Uid=xxxx;Pwd=xxxx;");
MySqlCommand cmd = new MySqlCommand("select * from appoint order by times asc", con);
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
con.Open();
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
ListViewItem Item = new ListViewItem(dr["Customer"].ToString());
Item.SubItems.Add(dr["Kind"].ToString());
Item.SubItems.Add(dr["connum"].ToString() + "/" + dr["telnum"].ToString());
Item.SubItems.Add(dr["times"].ToString());
Item.SubItems.Add(dr["address"].ToString());
Item.SubItems.Add(dr["type"].ToString());
Item.SubItems.Add(dr["notes"].ToString());
listView10.Items.Add(Item);
}
con.Close()
它应该加载表中的值,但它不会。 当我将数据库连接到Mysql Workbench时,似乎连接正常。在我的winform应用程序中,它可以插入数据库但它仍然没有加载。我正如我观察到的那样,我注意到执行后:
da.Fill(dt);
它只是停在那里,并没有执行foreach语句。什么似乎是我不明白的问题。 如果需要的话,我会提供更多的信息,明天有点匆忙是我们论文中的辩护。提前谢谢
调试时的图片
答案 0 :(得分:1)
您可以使用DataTable.Load()
方法和MySqlDataReader.ExecuteReader()
方法替代MySqlDataAdapter
来检索此示例中的数据:
using (MySqlConnection con = new MySqlConnection("Server=166.62.27.186;Database=xxxx;Uid=xxxx;Pwd=xxxx;"))
{
con.Open();
using (MySqlCommand cmd = new MySqlCommand("select * from appoint order by times asc", con))
{
MySqlDataReader rdr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(rdr);
foreach (DataRow dr in dt.Rows)
{
ListViewItem Item = new ListViewItem(dr["Customer"].ToString());
Item.SubItems.Add(dr["Kind"].ToString());
Item.SubItems.Add(dr["connum"].ToString() + "/" + dr["telnum"].ToString());
Item.SubItems.Add(dr["times"].ToString());
Item.SubItems.Add(dr["address"].ToString());
Item.SubItems.Add(dr["type"].ToString());
Item.SubItems.Add(dr["notes"].ToString());
listView10.Items.Add(Item);
}
}
con.Close();
}