2017-12-14 10 views
0

는이 코드가 있습니다내 listview에 데이터베이스 값을로드 할 수없는 이유는 무엇입니까?

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 문을 실행하지 않는다. 내가 이해하지 못하는 문제가있는 것 같습니다. 필요하다면 더 많은 정보를 제공 할 것이고, 내일은 급하게 우리의 논문에서 우리의 방어입니다. 사전

사진을에 감사

enter image description here

enter image description here

enter image description here

+1

'foreach' 루프는 아무 것도하지 않기 때문에'dt.Rows'에는 행이 없습니다 (빈 결과). 그걸 확인해 봤어? –

+0

이것을 디버깅 했습니까? 'dtRows'에서 무엇이 있는지보십시오. – HimBromBeere

+0

어떻게 dt.rows를 디버깅 할 수 있습니까? 중단 점에서 {null}은 확실히 null을 의미합니다. – yuzirui

답변

1

디버깅이 예제와 같이 데이터를 검색 할 수 MySqlDataAdapter에 대안으로 MySqlDataReader.ExecuteReader() 방법 DataTable.Load() 방법을 사용할 수 있습니다 :

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(); 
}