zoukankan      html  css  js  c++  java
  • ExecuteScalar的学习日志

    一:今天写关于调用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

  • 相关阅读:
    php mysql 查询
    正则表达式 常用匹配模式
    正则 去除html标签
    PHP 操作MySQL
    MySQL 的中文乱码问题终结
    [转]BP人工神经网络的介绍与实现
    [转]BP人工神经网络的C++实现
    [转]高效BP(反向传播算法)
    [转]反向传播算法BP (弄懂为什么是反向而不是正向)
    [转]BP神经网络梯度下降算法
  • 原文地址:https://www.cnblogs.com/hongmaju/p/3604873.html
Copyright © 2011-2022 走看看