executescalar的简单介绍

http://www.itjxue.com  2023-01-24 21:26  来源:未知  点击次数: 

C#中ExecuteReader()、ExecuteNonQuery()、ExecuteScalar()方法的作用

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

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

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

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

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

SqlCommand.ExecuteScalar 方法

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

你的语句是插入,怎么会有返回呢。

如果是取得插入记录的id,可以加上 select @@identity

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

另外一个帖子我已经回复

1 首先楼主的代码非常混乱,建议你使用存储过程来做,否则一个函数包含这么多次数据查询效率不太高

2 楼主的ado。net常规用法似乎楼主不了解,除了sqladapter的fill方法不需要显式打开数据库连接,其他的executenonquery/scalar等必须显式打开连接

3 通常用法为

using(sqlconnection=new sqlconnection)

{

try

{}

catch

{}

}

(责任编辑:IT教学网)

更多

推荐网络媒体文章