日期:2014-05-17  浏览次数:20473 次

while(reader.Read())表里数据为空 还是进了循环
把所有数据都删除后,再查询时 ,还是进了循环 报错了

查询:
string sqlstr = "select bs,wtdh,yqmc from [T_Sys_JDJLB]";
  SqlCeDataReader read = null;
  //创建SQL数据集
  sqlcmd = new SqlCeCommand(sqlstr, DataBaseCon.acon);
  read = sqlcmd.ExecuteReader();

  //列表清空
  listView1.Items.Clear();
  //读取数据集信息
  while (read.Read())
  {
  metrology_jdjl.Add(read[0].ToString(), read[0].ToString());

  //创建子数组 subitem
  ListViewItem tmpSubitem = new ListViewItem();
  tmpSubitem.SubItems.Clear();

  //委托单号
  tmpSubitem.SubItems[0].Text = read[1].ToString();
  //仪器名称
  tmpSubitem.SubItems.Add(read[2].ToString());

  listView1.Items.Add(tmpSubitem);
  }
  //释放资源
  read.Close(); read = null; sqlcmd = null;



删除:

  SqlCeCommand sqlcmd = null;
  try
  {
  string sqlstr = "delete from [T_Sys_JDJLB] where bs in (" + bs + ")"; ;
  sqlcmd = new SqlCeCommand(sqlstr, DataBaseCon.acon);
  sqlcmd.ExecuteNonQuery();

  }catch(Exception ee)
  {
  ret = false;
  }
  //释放资源
  sqlcmd = null;


------解决方案--------------------
如果没有数据肯定不会循环的,肯定是哪边错误,仔细调试下
------解决方案--------------------
单步调试一下,用datatable和dataadapter看看能不能取出数据来
------解决方案--------------------
不是的你的
while里面是有装换出错

另外就是string sqlstr = "select bs,wtdh,yqmc from [T_Sys_JDJLB]";的后面没有条件的

你的删除是有条件的

比如:你吧>0的删除了
然后查询的是全部数据
当然还有数据了哦

string sqlstr = "select bs,wtdh,yqmc from [T_Sys_JDJLB]"; 加上条件
然后while里面有bug