2015-12-02 40 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控件将不会显示任何项目 。