您的位置:首页 > 编程语言 > C#

C#执行executescalar()方法无结果时如何处理

2010-11-15 22:03 295 查看
当从数据库里查询的结果为空时就会提示“对象不能从 DBNull 转换为其他类型”。我想做的是怎么用一个if语句,当返回为空的时候,就弹出窗口提示查询为空,而不是报错导致程序不能运行。哪位大虾帮忙改一下代码,解释一下ExecuteScalar()返回的是什么类型的值。

在异常中进行处理啊,在里面写成你想要的效果。

当返回为空的时候就会提示无法将DBNULL类型转换为int型

try catch啊 当ExecuteScalar方法返回值为空,转double类型的时候就会出现异样,再catch模块里就可以返回0了啊

ExecuteScalar()返回结果集中第一行的第一列,就是你select xx from table其中xx在表里面是什么类型就返回什么类型的。
解决办法:在输出之前判断
更正下,我这里说的ExecuteScalar()返回类型应该指数据库字段对象类型,调用它必须强制转换你需要的类型。

我用vs2010打开2008的web项目后,数据库(mdf文件)竟然被改成了sql server2008的版本,然后我在用vs2008打开的时候就出现无法打开的问题。请问有什么比较好的解决方法么?

你以前的版本是那个版本的。你可以把新库导一份出来。。。然后再还原到原来的版本去。

我用vs2008打开数据库连接,就弹出个错误提示
”....版本为655,无法打开。此服务器支持612版及更低版本。“

这样是不是有点麻烦呢,有没有更简单的办法呢

要搞清楚,mdf文件跟你的机器上的数据库系统的版本是两回事。

这怎么能说什么mdf被修改成了vs2008?这明明是你的mdf不适配sql server高版本。

当然是可以这样搜索的了。
选择不同选项,传入不同参数就可以么。
当然传给存储过程的参数是要提前处理好的。
假如你需要比较的日期参数为dt,那么你的where条件可以这么写
第二个你说的数字分页,无刷新。
可以用aspnetpager控件加+updatepanel来实现。基本能符合你的要求
如果主机S2有任务,动态创建CLIENTSOCKETS2,登陆,然后发送COMMAND2,如果没有任务了,断开连接.
想动态创建clientsocket但是,NetReceivedEventArgs如何关联?

我有2个自定义控件,其中 A 自定义控件中包含了 B 自定义控件,我在 A 自定义控件中构造函数中实例化B控件,并在 OnInit 中初始化 B 控件实例,为什么没有调用 B 自定义控件的 CreateChildControls 方法增加B 自定义控件的子控件?

为什么会调用?有根据吗?胡乱写在OnInit?

我只是不知道该在什么地方调用,如果想在A控件里调用B控件的实例,B控件时自定义控件时该如何调用呀。

人生如梦11月开始就没回帖了。连续2周,周榜前三,如果猜得不错,11月的月榜,总榜,他还会是第一,虽然他一个月不回一张帖子,依然总榜第一,就是因为有很多人延迟结贴。

亲爱的观众朋友们,现在向我们走来的是CSDN的ZeewenDotNet队,让我们以热烈的鲜花和美丽的掌声欢迎他

楼主的遭遇只是一小部分用户的坏习惯造成的,并不能笼统的说。希望LZ乐观一些,继续发出好的帖子,大家互相进步。

我承认我是时候做出艰难的决定了:以后出来泡,只打“友情帮顶”!

来源:NBA视频下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息