SqlServer数据库的一些方法的用途
一直分不清这三种方法的具体用法现在终于找齐了 ExecuteNonQuery方法和ExecuteScalar方法和ExecuteReader方法的区别? (1)ExecuteNonQuery():执行命令对象的SQL语句,返回一个int类型变量,如果SQL语句是对数据库的记录进行操作(如记录的增加、删除和更新),那么方法将返回操作所影响的记录条数。 (2)ExecuteScalar():执行命令对象的SQL语句,如果SQL语句是SELECT查询,则仅仅返回查询结果集中的第1行第1列,而忽略其他的行和列。该方法所返回的结果为object类型,在使用之前必须强制转换为所需的类型。如果SQL语句不是SELECT查询,则返回结果没有任何作用。 ?
以上代码中,创建了SqlCommand类型的命令对象cmd,设置其连接为连接对象cn,SQL命令文本为某个SQL语句。由于返回值为object类型,所以需要进行强制转换,count变量即存储了所需数据表中记录的数量。 ? ?(3)ExecuteReader():我们通常在asp中用Recordset对象来从数据库中读出数据,并且用 循环语句来一个一个的读出数据,但在我们的ADO.NET中,我们就是用DataReader 对象的 ExecuteReader()方法来进行数据的列出,并且我们用这个ExecuteReader()方法来显示数据 是最快的一种方法,因为当我们在用ExecuteReader()方法中的DataReader 对象来进行数据 的在网站建设中显示时,他只可以一条一条向前读,不能返回,也就是像ASP中的ADO方法 中的Recordset 对象的Movenext一样,他没有move -1这样的返回方法。 说明:如果没有数据可操作,那么只能使用调用命令对象的ExecuteReader方法,返回一个数据读取器(DataReader对象)。因为 ExecuteNonQuery()与ExecuteScalar()在没有数据的时候调用时,就会出现“对象没有实例化”的错误。所以在判断是否有数据时,应该调用数据读取器的Read()方法来检测。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql-server-2008 – 在SQL Server 2008中查找无效日期
- 使用数据库中的数据填充django表单
- .Net Core 2.0数据库第一种方法Mysql DB的Scaffold-DbConte
- sql-server-2008 – SSIS包中的数据转换问题 – 文本到GUID
- SQLserver 数据库增删改查练习50例
- SQLServer锁和事务隔离级别
- 有关Sql Server 2008中的更改跟踪的建议
- 如何从SQL表中以逗号分隔的值字符串的形式提取ID的列表?
- 是否有T-SQL命令检查同义词所引用的对象是否存在且有效?
- 奇怪的 unhandled exception in 0xc0000005 *.exe:、错误