博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ExecuteScalar的学习日志
阅读量:7034 次
发布时间:2019-06-28

本文共 902 字,大约阅读时间需要 3 分钟。

一:今天写关于调用sqlhelper类的时候出现了一个异常,我仔细观察没有错误啊,怎么回事:看图

二:出现错误时id的结果是0,也就是说ExcuteScalar的结果是null,明明数据库里有多行数据,首行首列不应该是空啊,我将id改为int类型进一步验证,如下图,此时没有出错,,但不知这个0是怎么回事

三:之前是用Tostring()转换,接下来我用Convert ToString()转换,却没有出现异常,如下图,结果设么也看不到,进一步证明了是null的说法,但为什么会出现这样的不同呢?

四:当然我这样用ExecuteScalar让大家看笑话了,它的正确用法-----有实际意义的用法,仅用于order by 和select的SQL语句,或插入一条数据信息时,常常需要马上知道刚才插入的值如下,如下两图:

 

五:关于为什么是空的解释和Tostring()、Convert ToString()的不同
1.update是没有选出来表里的信息的(可以到数据库里,把对应的update sql语句输入,是得不到表的,所以不存在首行首列),即,得到的值为DBnull,它不能.tostring了
2.通常情况下ExecuteNonQuery操作后返回的int类型的变量,而ExecuteScalar操作后返回的是object类型的变量,例如插入一条信息,需要知道刚才插入的值,如上图
3.string str1="" 和 string str2=null 的区别,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的;string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。
4.object.tostring:是从object里继承来的方法,对于空引用和DBNull(未初始化值)的对象直接调用.ToString()会引发异常
convert.tostring:是把object转换为string对象,可以把DBNull/Null转化为String.Empty

 

 

转载地址:http://wwyal.baihongyu.com/

你可能感兴趣的文章
django中间键
查看>>
2017/09/22脚本练习
查看>>
Http post 常用的四种请求方式
查看>>
Python常用模块2
查看>>
直播APP开发如何得到用户青睐?
查看>>
Android工具类系列-汉字转化拼音
查看>>
Day26 正则介绍_grep工具
查看>>
马云:阿里巴巴必须成为国家和世界创新的发动机
查看>>
数据库-删除数据
查看>>
753个大奖邀请各位新老博主入驻云栖,请技术人员广而告之
查看>>
apache域名重定向rewrite
查看>>
LNMP架构介绍,php安装
查看>>
Spring Boot教程(三十一)创建含有多module的springboot工程
查看>>
以太坊创始人V神介绍99%容错的共识机制
查看>>
maven打包成可运行jar包遇见的坑
查看>>
用navicat连接mysql8
查看>>
ssm框架整合
查看>>
《活着》读后感4500字
查看>>
JDK8新特性
查看>>
Nginx访问日志、日志切割、静态文件不记录日志和过期时间
查看>>