while(reader.Read())表里数据为空 还是进了循环

鱼粉儿 2012-04-24 11:42:18
把所有数据都删除后,再查询时 ,还是进了循环 报错了

查询:
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;
...全文
713 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
鱼粉儿 2012-04-27
  • 打赏
  • 举报
回复
是 while 里的转换出错了
鱼粉儿 2012-04-27
  • 打赏
  • 举报
回复
问题解决了 还是谢谢各位了!
鱼粉儿 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

C# code

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


不是这个问题额 报的错是:Value does not fall within the expected range.
Im_Sorry 2012-04-26
  • 打赏
  • 举报
回复

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();
//读取数据集信息
if(read!=null) //这样判断!!!!
{
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;



if(read!=null) //这样判断!!!!
anzhiqiang_touzi 2012-04-26
  • 打赏
  • 举报
回复
不是的你的
while里面是有装换出错

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

你的删除是有条件的

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

string sqlstr = "select bs,wtdh,yqmc from [T_Sys_JDJLB]"; 加上条件
然后while里面有bug
  • 打赏
  • 举报
回复
单步调试一下,用datatable和dataadapter看看能不能取出数据来
鱼粉儿 2012-04-25
  • 打赏
  • 举报
回复
sqlce 数据库 删除后再查询就会报错 有木有人遇到过啊?
鱼粉儿 2012-04-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

加个判断~~
[/Quote]


怎样判断?
夜色镇歌 2012-04-24
  • 打赏
  • 举报
回复
加个判断~~
夜色镇歌 2012-04-24
  • 打赏
  • 举报
回复
缓存??
huijunliang 2012-04-24
  • 打赏
  • 举报
回复
第一:

把所有数据都删除后,再查询时 ,还是进了循环 报错了

=============

数据都没有了,应该不进循环了,是不是数据缓存了?


第二:

string sqlstr = "delete from [T_Sys_JDJLB] where bs in (" + bs + ")";

但看这条sql 看不出你把全部数据都删除了。

string sqlstr = "select bs,wtdh,yqmc from [T_Sys_JDJLB]";

这里又查询列表数据,是不是sql 写错了?

改成:
string sqlstr = "select bs,wtdh,yqmc from [T_Sys_JDJLB] where bs in (" + bs + ")";

_萧萧 2012-04-24
  • 打赏
  • 举报
回复
你有判断吗
myhope88 2012-04-24
  • 打赏
  • 举报
回复
如果没有数据肯定不会循环的,肯定是哪边错误,仔细调试下

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧