select count(*) from table问题

ximenwuji 2008-05-15 07:14:34
......
t_count1 = (int)MYselectNameCom.ExecuteScalar();
t_count1 = 0;
提示类型转换错误
...全文
173 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
michaeljjf 2008-05-15
  • 打赏
  • 举报
回复
用 16 楼的 int count1 = int.Parse(paMYselectNameCom.ExecuteScalar().ToString());
michaeljjf 2008-05-15
  • 打赏
  • 举报
回复
用int count1 = int.Parse(paMYselectNameCom.ExecuteScalar().ToString());
flexitime 2008-05-15
  • 打赏
  • 举报
回复
不可能是null吧
count的话,无论如何都不应该为空
要不你试试看
在ms sqlserver 下
select count(*) from dbo.base_resource_tb_user
where 1 = 2
namhyuk 2008-05-15
  • 打赏
  • 举报
回复
int count1 = int.Parse(paMYselectNameCom.ExecuteScalar().ToString());
anydaily 2008-05-15
  • 打赏
  • 举报
回复
少个)改正:
Int32 count1 = Int32.Parse(paMYselectNameCom.ExecuteScalar());
anydaily 2008-05-15
  • 打赏
  • 举报
回复
Int32 count1 = Int32.Parse(paMYselectNameCom.ExecuteScalar();
jinjazz 2008-05-15
  • 打赏
  • 举报
回复
怎么可能没有结果,人家都返回0了,麻烦你再回答之前先自己测试一下
HappinessBoy 2008-05-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jinjazz 的回复:]
引用 8 楼 HappinessBoy 的回复:
引用 4 楼 jinjazz 的回复:
select count(*) from table执行的ExecuteScalar绝对不会为null

如果加了一个不成立的where条件呢?


当然是0了,你没用过数据库么?
[/Quote]
在分析器之行 where 1<>1 返回结果的确是0,
ExcuteScalar返回的是一个于结果集第一行相应数据类型的值,如果没有结果,返回的是NULL或者是DBNull.Value,
jinjazz 2008-05-15
  • 打赏
  • 举报
回复
object obj = command.ExecuteScalar();
断点调试一下obj是什么就知道了。
HappinessBoy 2008-05-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ximenwuji 的回复:]
引用 6 楼 liushaohui868 的回复:
用Convert.Toint32(MYselectNameCom.ExecuteScalar())强转试试

这个到可以,可是为什么呢?
[/Quote]
object o = null;
(int)o
报错:无法将“o”作为“int”取消装箱
Convert.ToInt32(null)
结果:0
jinjazz 2008-05-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 HappinessBoy 的回复:]
引用 4 楼 jinjazz 的回复:
select count(*) from table执行的ExecuteScalar绝对不会为null

如果加了一个不成立的where条件呢?
[/Quote]

当然是0了,你没用过数据库么?
HappinessBoy 2008-05-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jinjazz 的回复:]
select count(*) from table执行的ExecuteScalar绝对不会为null
[/Quote]
如果加了一个不成立的where条件呢?
ximenwuji 2008-05-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 liushaohui868 的回复:]
用Convert.Toint32(MYselectNameCom.ExecuteScalar())强转试试
[/Quote]
这个到可以,可是为什么呢?
liushaohui868 2008-05-15
  • 打赏
  • 举报
回复
用Convert.Toint32(MYselectNameCom.ExecuteScalar())强转试试
ximenwuji 2008-05-15
  • 打赏
  • 举报
回复
select count(*) from table where ........
怎么可能会是空呢?
jinjazz 2008-05-15
  • 打赏
  • 举报
回复
select count(*) from table执行的ExecuteScalar绝对不会为null
HappinessBoy 2008-05-15
  • 打赏
  • 举报
回复
ExecuteScalar返回类型为object ,有可能是null
jinjazz 2008-05-15
  • 打赏
  • 举报
回复
设断点调试啊
hery2002 2008-05-15
  • 打赏
  • 举报
回复
t_count1 = (int)MYselectNameCom.ExecuteScalar(); 

你这句返回的是什么?
如果是空值,
或者是非数字型字符串,都会报错的!

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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