c#数据库訪问返回值类型为SqlDataReader时使用using时注意的问题
https://blog.csdn.net/u010512579/article/details/24011761
在封装通用 SQLSERVER 数据可訪问方法时,假设返回值类型为 SqlDataReader ,那么在创建连接字符串的时候。我们不能写成例如以下
public static SqlDataReader ExecuteReader(string strSQL)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(strSQL, connection))
{
try
{
connection.Open();
SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return myReader;
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
}
}
}
你在使用using创建的时候,在SqlDataReader 赋值后return时,SqlConnection 就会被释放资源,连接就会被关闭。而我们传递过去的SqlDataReader 是引用类型,接收传递过去的SqlDataReader 的地方调用的时候,就会提示连接已经被关闭。无法调用,由于 using (SqlConnection connection = new SqlConnection(connectionString))在方法结束时,就把资源释放了,并关闭了连接。为了正常接收传递过去的SqlDataReader 。在创建连接的时候不能用using,正确的写法例如以下
public static SqlDataReader ExecuteReader(string strSQL)
{
SqlConnection connection = new SqlConnection(connectionString);
using (SqlCommand cmd = new SqlCommand(strSQL, connection))
{
try
{
connection.Open();
SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return myReader;
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
}
}
转载于:https://www.cnblogs.com/xfgnongmin/p/10642901.html
c#数据库訪问返回值类型为SqlDataReader时使用using时注意的问题相关推荐
- (转)C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
原文链接:https://www.cnblogs.com/landeanfen/p/5501487.html 阅读目录 一.void无返回值 二.IHttpActionResult 1.Json(T ...
- JDBC连接mysql、创建表、操作数据、PreparedStatement防注入、sql语句返回值类型知识汇总
JDBC连接过程: import java.sql.*;/*** Description:* Created by CWG on 2020/10/29 21:05*/ public class Con ...
- MyBatis查询结果resultType返回值类型详细介绍
一.返回一般数据类型 比如要根据 id 属性获得数据库中的某个字段值. mapper 接口: // 根据 id 获得数据库中的 username 字段的值String getEmpNameById(I ...
- 机房重构 之 抽象工厂+反射+配置文件 实现数据库訪问
重构机房已经開始三个多星期了,从刚開始的一头雾水,到如今的柳暗花明,由開始的无从下手,到如今感觉犹 如脱胎换骨了般.和两个星期前相比.如今明朗了多了,心情也好了不少. 先给大家看一下这次重构的总体架构 ...
- MyBatis中resultType返回值类型介绍
一.返回一般数据类型 比如要根据 id 属性获得数据库中的某个字段值. mapper 接口: // 根据 id 获得数据库中的 username 字段的值 String getEmpNameById( ...
- Jav详细介绍的Mapper对应的Mybatis xml查询结果resultType返回值类型
一.返回一般数据类型 此实列总代用的是string类型 列:比如我们要根据 id 属性获得数据库中的某个字段值. mapper 接口: // 根据 id 获得数据库中的 username 字段的值 ...
- python参数类型限定_python限定方法参数类型、返回值类型、变量类型等|python3教程|python入门|python教程...
https://www.xin3721.com/eschool/python.html typing模块的作用 自python3.5开始,PEP484为python引入了类型注解(type hints ...
- java 返回值判断_在Java中判断方法重载的条件除了参数外,还可以通过返回值类型判断。_学小易找答案...
[单选题]若int x;且有下面的程序片断,则输出结果是() . for (x=3; x<6; x++) { printf((x%2) ? "##%d" : "** ...
- php mysql update 返回_php mysql_query增删改查(update delete insert)返回值类型
insert插入返回值类型 $result=mysql_query("insert into table(id,name,age)values(1,'wxp',30)"); var ...
最新文章
- 联想e580没有声音_现在你可以购买通过 Linux 认证的联想 ThinkPad 和 ThinkStation
- QEMU支持的网络模式
- 2009中国海上大阅兵全视频
- Linux命令(15)——hostname、wc、ps、kill
- RabbitMQ(mall学习)
- python中当地时间_R 与 Python 中与时间相关内容的梳理
- js之base64上传图片
- C#中使用SqlBulk百万级数据秒级插入
- python numpy中对ndarry按照index(位置下标)增删改查
- c++学习笔记(5)
- 个人住房抵押贷款流程让你的贷款更轻松
- c# serialPort.DataReceived无法被触发接收数据
- cml sml区别_资本资产定价模型中cml与sml有什么区别?
- html插入swf自动播放,如何在HTML页面中嵌入SWF文件?
- 装上这几款IDEA插件,专业程度提升妥妥的
- 软件工程-耦合与内聚简单实例
- 大学里 信息领域的专业 名称解释
- 软件测试:sql注入·依赖基本sql语句
- 数据分析的日常工作——如何成为不被追着要数据的数据分析师?
- Java使用程序ZHConverter把工程内所有文件的简体字转换为繁体字