executescalar

更新时间:2023-03-01 00:50:21 阅读: 评论:0

ExecuteScalar方法返回值 及 DBnull和NUll的区别

cmd.ExecuteScalar()方法返回值类型为object

当查询没有任何返回值时会返回Null,表现为直接在SQL Management Studio内查询,没有返回值,为空白。则ExecuteScalar()返回NULL值

当查询有返回值,如果第一行第一列值为NULL,表现为直接在SQL Management Studio内查询,显示为NULL,则ExecuteScalar()返回DBNull值

DBNull.ToString()为空字符串,NULL.ToString()会报异常。所以最好先对返回值 进行判断是否为空再作处理。

DBNull 和 NULL的区别

null是C#中的关键字,表示此引用不指向任何地址。

DBNull只是一个普通的类,继承自object,没添加任何方法属性,其有一个唯一的实例Value。它的存在仅仅只是为了表示从数据库读取数据时遇到的数据库中的null值。

可以用Convert.IsDBNull()方法判断是不是DBNull

.NET中ExecuteScalar()方法执行数据库查询后,返回的三种空结果的区别

数据集不存在即行数为零

数据集的行数为1,但值为DBNull.Value

数据集行数为1,值为0长度字符串


看看这一页,应该完整的说明了你的情况:




http://blog.csdn.net/zhvsby/article/details/6000310


什么情况下使用ExecuteNonQuery和 ExecuteScalar 方法?

ExecuteScalar方法返回的类型是object类型,这个方法返回sql语句执行后的第一行第一列的值,由于不知到sql语句到底是什么样的结构(有可能是int,有可能是char等等),所以ExecuteScalar方法返回一个最基本的类型object,这个类型是所有类型的基类,换句话说:可以转换为任意类型。

ExecuteNonQuery方法是用来执行inrt、delete、update语句的,由于这些语句执行后只有一个结果:“影响了**行”,所以ExecuteNonQuery方法返回的是影响的行数(int)。

虽然SQL中列的name本身就是字符串类型,但是你通过dataReader["name"]这种方式访问这个字段,必须强制类型转换,因为dataReader["name"]就像一个数组,数组中的每个元素的类型都应该一样,所以dataReader[]这个数组中的元素类型也被定义为object类型,以方便转换。


ExecuteScalar()执行inrt语句后返回的是什么

SqlCommand.ExecuteScalar 方法
执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。

你的语句是插入,怎么会有返回呢。
如果是取得插入记录的id,可以加上 lect @@identity

为什么会出现 ExecuteScalar 要求已打开且可用的连接。连接的当前状态为已关闭的错误 ,求解答 谢谢谢谢谢。

另外一个帖子我已经回复
1 首先楼主的代码非常混乱,建议你使用存储过程来做,否则一个函数包含这么多次数据查询效率不太高
2 楼主的ado。net常规用法似乎楼主不了解,除了sqladapter的fill方法不需要显式打开数据库连接,其他的executenonquery/scalar等必须显式打开连接
3 通常用法为
using(sqlconnection=new sqlconnection)
{
try
{}
catch
{}
}

本文发布于:2023-02-28 19:12:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/167760302156000.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:executescalar.doc

本文 PDF 下载地址:executescalar.pdf

标签:executescalar
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|