2015-03-03 86 views
0

從MySQL數據庫獲取數據並將此數據添加到ListView。 當我這樣做時,數據開始添加到第二行。第一行是空的,但它會正確加載所有數據。只有數據庫中的第一行被添加到第二行的列表視圖中。Listitem添加到第二行的c#

private void CreateSessionList() { 
    SessionList.View = View.Details; 
    SessionList.Font = Listctrlfont; 

    connection.Open(); 
    cmd = connection.CreateCommand(); 
    cmd.CommandText = "SELECT * FROM sessiontbl"; 
    MySqlDataAdapter ada = new MySqlDataAdapter(cmd); 
    DataTable dt = new DataTable(); 
    ada.Fill(dt); 
    for (int i = 0; i < dt.Rows.Count; i++) { 
     DataRow dr = dt.Rows[i]; 
     ListViewItem listitem = new ListViewItem(dr["SessionID"].ToString()); 
     listitem.Font = Listitemfont; 
     listitem.SubItems.Add(dr["InstID"].ToString()); 
     listitem.SubItems.Add(dr["Trainee"].ToString()); 
     listitem.SubItems.Add(dr["SessDt"].ToString()); 
     listitem.SubItems.Add(dr["ModelID"].ToString()); 
     listitem.SubItems.Add(dr["ModelName"].ToString()); 
     SessionList.Items.Add(listitem); 
    } 
} 

我做錯了什麼?

+1

在開始添加項目之前SessionList爲空嗎?如果在'connection.Open()'之前添加'MessageBox.Show(SessionList.Items.Count.ToString());',你看到了多少個數字? – cubrr 2015-03-03 11:24:32

+0

它返回1.當我通過查看下面的解決方案添加清除()。現在它返回0.謝謝 – Anu 2015-03-03 11:46:30

回答

1

您可能在設計器的列表視圖中有一個佔位符項目。 在開始填充之前,請先清除項目,以確保您從乾淨的石板開始。

這也意味着你可以隨時從dB重新加載。

SessionList.Items.Clear(); 
0

檢查Datatable的第一行是否包含列名。在這種情況下,您必須從dt.Rows集合中的i = 1開始。

相關問題