初学者关于ListView求解???
我在程序中单独输入以下代码运行正常: ListViewItem lviStus = new ListViewItem("aa");
lviStus.SubItems.Add("1");
lviStus.SubItems.Add("a");
lviStus.SubItems.Add("c");
this.lvStudent.Items.Add(lviStus);
可为什么写在一个循环里就不行了了?
String sql = String.Format("select * from student where stu_uname like '%{0}%'", txtStu_name.Text);
DBHelper.conn.Open();
SqlCommand comm = new SqlCommand(sql, DBHelper.conn);
SqlDataReader dr = comm.ExecuteReader();
lvStudent.Clear();
if (!dr.HasRows)
{
MessageBox.Show("没有相信学员的信息");
}
else
{
while(dr.Read()) //单步调试是运行到了这里
{
ListViewItem lviStus = new ListViewItem("aa");
//lviStus.SubItems.AddRange(new String[] {stu_name, stu_key, stu_state});
//lviStus.SubItems.AddRange(new String[] { "aa", "bb", "cc" });
lviStus.SubItems.Add("1");
lviStus.SubItems.Add("a");
lviStus.SubItems.Add("c");
this.lvStudent.Items.Add(lviStus);
}
}
dr.Close();
DBHelper.conn.Close();
------解决方案--------------------断点调试看哪一行代码出错。
在循环中定义
ListViewItem lviStus = new ListViewItem("aa");
这一句可能有问题。
因为最后lviStus 要被add到this.lvStudent.Items中。结果都是"aa"应该是会报错的。可以试试
ListViewItem lviStus = new ListViewItem("aa"+行号之类的);
------解决方案--------------------首先肯定重复添加new ListViewItem("aa")不会报错
你先说明一下所谓的不行是什么不行,报错还是不执行呢,下断点跟踪调试
------解决方案--------------------你循环应该不报错吧。ListViewItem lviStus = new ListViewItem("aa");放到循环外面
------解决方案--------------------估计是重复定义的原因,不知道你循环怎么写的
------解决方案--------------------把代码换成下面的试试
C# code
ListViewItem lviStus;
while(dr.Read()) //单步调试是运行到了这里
{
lviStus = new ListViewItem("aa");
//lviStus.SubItems.AddRange(new String[] {stu_name, stu_key, stu_state});
//lviStus.SubItems.AddRange(new String[] { "aa", "bb", "cc" });
lviStus.SubItems.Add("1");
lviStus.SubItems.Add("a");
lviStus.SubItems.Add("c");
this.lvStudent.Items.Add(lviStus);
}
------解决方案--------------------
下断点,单步调试