asp.net – 使用Using语句的SQLConnection,从里面调用SQLDataRea
发布时间:2020-12-16 09:16:32 所属栏目:asp.Net 来源:网络整理
导读:只是想确保这是调用连接,从数据库中获取数据的最佳方法,还是应该如何在using语句之外调用datareader? (为了更快地关闭连接?)或者你有什么个人改变吗? using (SqlConnection cn = new SqlConnection(connStr)) { using (SqlCommand cm = new SqlCommand(co
只是想确保这是调用连接,从数据库中获取数据的最佳方法,还是应该如何在using语句之外调用datareader? (为了更快地关闭连接?)或者你有什么个人改变吗?
using (SqlConnection cn = new SqlConnection(connStr)) { using (SqlCommand cm = new SqlCommand(connStr,cn)) { cm.CommandType = CommandType.StoredProcedure; cm.CommandText = "GetExchRatesByDate"; cm.Parameters.Add("@Date",SqlDbType.VarChar).Value = txtStartDate.Text; cn.Open(); SqlDataReader dr = cm.ExecuteReader(); while (dr.Read()) { firstName = (string)dr["GivenName"]; lastName = (string)dr["sn"];; } dr.Close(); } } 解决方法
您无法在using语句之外成功调用datareader,因为它需要打开连接才能读取数据.
连接将以你拥有的方式足够快地关闭,甚至不会真正“关闭”.它将返回到连接池(假设您使用的是连接池).由于您可能是这样,因此您无需担心连接在此上下文中关闭的速度,因为需要连接的应用程序的其他部分将从池中获取可用的连接.这假设您没有真正高流量的应用程序,它可能在这种情况下变得很重要,但这是很多很多很多并发用户,您可以通过增加池中的连接数来缓解这个问题. 克里斯提出了一个很好的观点:它应该在一个使用声明中: SqlDataReader dr = cm.ExecuteReader(); while (dr.Read()) { firstName = (string)dr["GivenName"]; lastName = (string)dr["sn"];; } dr.Close(); 在这种情况下,如果您的读者抛出异常,它将永远不会到达dr.Close();所以它会比它需要的时间长得多(甚至可能在应用程序的生命周期中). Data Reader (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 做个简单的RSS订阅(ASP.NET Core),节省自己的时间
- asp.net-mvc – 单元测试ASP.Net MVC Action结果,调用Serve
- asp.net – 如何让Html.RenderAction在帖子上调用Get方法?
- asp.net-core – 如何轻松地从ASP.NET Core 2.1迁移到2.2?
- asp.net-mvc – 获取错误参数’nameOrConnectionString’不
- 会话对象不更新ASP.NET
- ASP.NET 5 OAuth承载令牌认证
- asp.net-mvc – 添加MVC控件或视图时,Visual Studio 2015“
- Visual Studio Git本地Repos和GitHub远程Repos互操作
- asp.net-mvc – 不一致的可访问性:DbContext中的属性类型
推荐文章
站长推荐
- asp.net-mvc – 将Castle Windsor与SignalR集成
- ASP.NET WebApi 基于OAuth2.0实现Token签名认证
- asp.net – Intuit合作伙伴平台(IPP)QuickBooks
- asp.net-mvc-3 – 如何通过ajax上传文件
- 缓存 – 实体框架的缓存查询5
- asp.net – Datagrid:计算页脚中列的平均值或总
- asp.net-mvc – 何时公开IEnumerable而不是IColl
- asp.net – 在asp:GridView中插入隐藏列但仍然可
- asp.net-mvc-3 – 从ASP .NET MVC3调用WCF服务的
- ASP.Net C#MVC5 Razor查看XML站点地图
热点阅读