2015-12-02 80 views
0

我寫這篇文章的代碼:列表視圖在C#不工作

public Form1() 
{ 
     InitializeComponent(); 

     listView1.View = View.Details; 
     SqlConnection con = new SqlConnection("Data Source=(local);Initial Catalog=person;Integrated Security=True"); 
     SqlDataAdapter ada = new SqlDataAdapter("select * from personal", con); 
     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["name"].ToString()); 
      listitem.SubItems.Add(dr["lastname"].ToString()); 
      listView1.Items.Add(listitem); 
     } 
} 

它編譯沒有任何錯誤/警告,但它並沒有顯示任何東西。

+0

您是否嘗試調試此代碼?你的查詢是否有任何行檢索?我建議在調用 – Steve

+0

之前使用調試器來調試和修復子項目中的數據。但沒有表現出來。 – user2254798

+1

您是否定義了ListView子項目列? – Steve

回答

1

在ListView中添加子項之前,您需要定義所需的列。
在你的情況下,你需要兩列,一列用於主文本(名稱列),另一列用於從查詢中提取的第一個和唯一的子項(姓氏字段)。當然,如果將來你想在你的子項目列表

listView1.Columns.Add("Name", -2, HorizontalAlignment.Left); 
listView1.Columns.Add("LastName", -2, HorizontalAlignment.Left); 
for (int i = 0; i < dt.Rows.Count; i++) 
{ 
    DataRow dr = dt.Rows[i]; 
    ListViewItem listitem = new ListViewItem(dr["name"].ToString()); 
    listitem.SubItems.Add(dr["lastname"].ToString()); 
    listView1.Items.Add(listitem); 
} 

表MSDN上添加ListView.Columns財產

更多的數據。如果您的ListView控件沒有任何列標題指定 這應該被改變,您將View屬性設置爲Details,則ListView控件將不會顯示任何項目 。