c# 如何把查询到的数据便利到listview中

listView1.GridLines = true; //显示表格线
listView1.FullRowSelect = true; //是否可以选择行
listView1.View = View.Details; //显示表格细节
listView1.Columns.Add("ID", 40, HorizontalAlignment.Right); //表头名,长度,格式
listView1.Columns.Add("UserName", 180, HorizontalAlignment.Left); //表头名,长度,格式
listView1.Columns.Add("PassWord", 180, HorizontalAlignment.Left);//表头名,长度,格式

while (myreader.Read()){ //遍历
if (myreader.HasRows)
{
listViewItem.SubItems.Add(myreader.GetString("id"));
}
else {
MessageBox.Show("没有找到你想要的信息");
}

他显示是把ID进行了遍历谈框,我需要把遍历的id不谈框,需要放到 listView1.Columns.Add("ID", 40, HorizontalAlignment.Right); 这个里面去。。。代码有, 大神直接上代码吧

你好,我现在仍不知道你想要表达什么。但是我猜,你想要查询出结果,然后添加为Listview的一行。我给出可能可行的解决代码,供你参考。

if (myReader.HasRows)
{
ListViewItem listViewItem = new ListViewItem(); // 新建listviteItem 对象
listViewItem.SubItems.Add(myreader["id"].ToString()); // 为对象的子项赋值(这只赋ID列)
listView1.Items.Add(listViewItem); // 添加进ListView
}

主要是修改遍历算法这块,你只是添加listViewItem是没效果的,要把item加到ListView中,另外我假设你建立的myreader对象是SqlDataReader,该对象的GetString方法,不存在string 形参,只有GetString(int i) 这种用法,你看看是不是算法写错了?追问

那么上面是赋ID列,那么username,passwordm,如何让他们放到相应的咧呢

追答listViewItem.SubItems.Add(myreader["id"].ToString());
listViewItem.SubItems.Add(myreader["username"].ToString()));
listViewItem.SubItems.Add(myreader["password"].ToString());

你可以自己把鼠标移到Add方法上,IDE会给出用法。

追问


我是用的你上面给的代码。 现在是不匹配了。



这是数据库的图片

追答if (myReader.HasRows)             
{    
    ListViewItem item = new ListViewItem(
          new string[] { myreader["id"].ToString(), 
                         myreader["username"].ToString()), 
                         myreader["password"].ToString());
    listView1.Items.Add(item);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-24
放在Item里
第2个回答  2014-08-24
循环datatable的每一行插入就行了。
相似回答