SqlDataReader的关闭问题】的更多相关文章

原文:SqlDataReader的关闭问题 昨天一个朋友使用Repeater绑定数据源时,老是出现"阅读器关闭时尝试调用 FieldCount 无效."错误. 我看了他的代码,使用的是SqlHelper类下面的ExecuteReader方法,返回一个SqlDataReader进行绑定. public static SqlDataReader ExecuteReader(CommandType cmdType, string cmdText, params SqlParameter[]…
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);//关闭SqlDataReader 会自动关闭Sqlconnection…
1.当SqlDataReader没有关闭之前,数据库连接会一直保持open状态,所以在使用SqlDataReader时,使用完毕应该马上调用SqlDataReader.Close()关闭它. 2.一个连接只能被一个SqlDataReader使用,这也是为什么要尽早关闭SqlDataReader的原因. 3.使用完SqlDataReader后,你可以在程序中显示的调用数据库连接对象的Close方法关闭连接,也可以在调用Command对象的 ExecuteReader方法时传递CommandBeha…
转自:http://blog.knowsky.com/258608.htm 1.当SqlDataReader没有关闭之前,数据库连接会一直保持open状态,所以在使用SqlDataReader时,使用完毕应该马上调用SqlDataReader.Close()关闭它. 2.一个连接只能被一个SqlDataReader使用,这也是为什么要尽早关闭SqlDataReader的原因.3.使用完SqlDataReader后,你可以在程序中显示的调用数据库连接对象的Close方法关闭连接,也可以在调用Com…
一.常用属性 名称 说明 Depth 获取一个值,用于指示当前行的嵌套深度.  FieldCount 获取当前行中的列数. HasRows 获取一个值,该值指示 SqlDataReader 是否有行. IsClosed 指定的SqlDataReader 实例是否已关闭. Item[Int32] 获取指定列(数字索引),通常在While.Read()中使用. Item[String] 获取指定列(字符串索引), 通常在While.Read()中使用. RecordsAffected 获取执行 T-…
一.Connection对象 Connection对象也称为数据库连接对象,Connection对象的功能是负责对数据源的连接.所有Connection对象的基类都是DbConnection类. Connection对象有两个重要属性: (1)ConnectionString:表示用于打开 SQL Server 数据库的字符串: (2)State:表示 Connection 的状态,有Closed和Open两种状态. Connection对象有两个重要方法: (1)Open()方法:指示打开数据…
查询和操作数据库   要想从数据库中读取多条记录就必须用到Command对象的ExecuteReader()方法,该方法返回一个DataReader对象,通过其对象的程序就可以访问数据库. 基础知识 conn.close();   //关闭之后还能打开: conn.dispose();  //直接销毁不能再次利用,dispose内部有close方法:      认识DataReader对象         使用其DataReader对象可以从数据库中检索只读数据,且每次只能从查询结果中读取一行到…
目的:1.通过模仿QQ空间,全自主写代码,熟悉网页设计的流程 2.熟练的掌握HTML.CSS.JS的应用 3.将在此过程中遇到的问题及其解决方法记录在此,以便取用. 开始: 一.登陆界面(index.aspx + login.aspx) 1.背景填充整个浏览器界面: width,height: 使div充满整个浏览器界面: position:定位图片从左上角开始: background-size:  cover:   在锁定图片纵横比的情况下,将图片放大到最小大小,并且能覆盖背景区域: back…
一.简单登录验证(防SQL注入) GetString(序号) 返回某一列的值(当用户不记得列名序号时,可使用GetOrdinal()获取到序号)GetInt32(序号) 针对的是 int 字段,返回int字段的值GetOrdinal("列名") 根据列名得到序号 Console.WriteLine("请输入用户名:"); string Uname=Console.ReadLine(); Console.WriteLine("请输入密码:"); s…
连接数据源 Connection对象.Connection对象处于最顶层,是所有数据访问请求的关口.我们通过其暴露的属性进行配置.下面是一段连接字符串的示例. if (string.IsNullOrEmpty(con.ConnectionString)) { con.ConnectionString = "Data Source=localhost\\sql08; Initial Catalog=ado_test;user ID=sa;password=test;";// Integr…
ADO.NET 程序要和数据库交互要通过ADO.NET进行,通过ADO.Net就能在程序中执行SQL了. ADO.Net中提供了对各种不同的数据库的统一操作接口. 连接字符串: 程序通过连接字符串指定要连接那台服务器上的那个实例的数据库.用什么用户密码. 项目内嵌mdf文件形式的连接字符串如下: Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\ Database1.mdf;Integrated Security=True;Use…
原文传送门 如果使用SqlDataAdapter来查询数据返回给DataSet或者DataTable时需要注意以下几点:1.如果SqlDataAdapter的SelectCommand的连接并没有打开,使用SqlDataAdapter的Fill方法时会自动打开数据库连接,并在方法执行完毕自动关闭连接.如果连接在使用Fill方法之前已经打开,方法执行结束后会保持连接的现有状态,不会关闭连接.2.如果你在同一个Connection上有一系列的连续操作,例如执行多个Fill操作,你应该在最开始使用Co…
一.常用属性 名称 说明 Depth 获取一个值,用于指示当前行的嵌套深度 FieldCount 获取当前行中的列数 HasRows 获取一个值,该值指示 SqlDataReader 是否有行 IsClosed 指定的SqlDataReader 实例是否已关闭 Item[Int32] 获取指定列(数字索引),通常在While.Read()中使用 Item[String] 获取指定列(字符串索引), 通常在While.Read()中使用 RecordsAffected 获取执行 T-SQL 语句所…
一.Connection对象 Connection对象也称为数据库连接对象,Connection对象的功能是负责对数据源的连接.所有Connection对象的基类都是DbConnection类. Connection对象有两个重要属性: (1)ConnectionString:表示用于打开 SQL Server 数据库的字符串: (2)State:表示 Connection 的状态,有Closed和Open两种状态. Connection对象有两个重要方法: (1)Open()方法:指示打开数据…
注:EF连接Mysql时,连接字符串是不能包含MARS的,Mysql不支持这个特性. ADO.NET 1.n 利用SqlDataReader读取数据,针对每个结果集需要一个独立的连接. 这些独立的链接也要占用相应的内存,在应用程序运行中还会形成高度拥挤的瓶颈效应. ADO.NET 2.的一个新特征多数据结果集(Multiple Active Result Sets,简称MARS) 它允许在单个连接上执行多重的数据库查询或存储过程.目前只适用于Sql Server 2005 在一个Command对…
一.讲述6个ADO.NET中的常用对象: Connection对象Command对象DataReader对象DataAdapter对象DataSet对象DataTable对象DataRow对象DataColumn对象参数化SQL语句分页查询SQL语句 二. 1.Connection对象Connection对象也称为数据库连接对象,Connection对象的功能是负责对数据源的连接.所有Connection对象的基类都是DbConnection类.Connection对象有两个重要属性:  Con…
静态类和静态变量静态类的定义:static class 类名 静态方法和变量必须使用类名来引用,而不能使用实例化后的对象,因为,静态变量不属于任何实例,而是共有的. 非静态类里面既可以定义静态方法也可以定义非静态方法,它既可以和静态类一样调用静态方法,又可以通过实例化该类的方式,调用该类的非静态方法: 静态类会在程序集加载时被加载到内存中,在拥有访问权限的任何地方都可以调用.所以一般有一个共识:不要去写一个庞大的静态类. 从内存的优化方面去考虑.因为静态和非静态的不同的地方,就是静态的从程序一启…
加入两个组件:BindingNavigator和BindingSource 代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Text; using System.Linq; using System.Threading.…
1.C#编写创建一个线程的代码 using System; using System.IO; using System.Threading ; class MyThread{ public int count; string thrdName; public MyThread(string name){  count=0;  thrdName=name; } public void run(){  Console.WriteLine(thrdName+”starting.”);do {   Th…
ASP.NET开发中的三层开发思想指的是UI层(界面显示层),BLL层(业务逻辑层),DAL层(数据访问层)三层,三层之间通过函数的调用来达到降低耦合,易于系统维护的目的,SQLHelper助手类的主要作用在于接收并执行来自各个数据表累传来的sql语句或存储过程.一般的SQLHelper类中主要包括以下几个函数功能: 1.执行不带参数的增删改方法 2.执行带参数的增删改方法. 3.执行不带参数的查询方法. 4.执行带参数的查询方法. 作为一个程序员SQLHelper类编写的好坏不仅影响着系统的可…
6w学习笔记 vc控件的输入输出 单选按钮 当单击 RadioButton 控件时,其 Checked 属性设置为 true,并且调用 Click 事件处理程序.当 Checked 属性的值更改时,将引发 CheckedChanged 事件.如果 AutoCheck 属性设置为 true(默认值),则当选择单选按钮时,将自动清除该组中的所有其他单选按钮 输入 this.rdb_in.Checked = (bool)sqlDataReader["inorout"]; this.rdb_o…
SqlDataReader阅读器关闭时尝试调用 HasRows 无效 原创长白山上放羊娃 发布于2018-07-25 00:29:27 阅读数 538  收藏 展开 在SqlHelper中封装好的SqlDataReader在调用时出现了 “阅读器关闭时尝试调用 HasRows 无效” 调试了许多次,提示的都是SqlHelper中错误 但我以为是代码出错误,但是后来才发现是因为封装的方法有问题   public static SqlDataReader ExecuteReader(string s…
SqlParameter[] sp = { new SqlParameter("@nGridID",SqlDbType.BigInt), new SqlParameter("@strDocID",SqlDbType.VarChar,16), new SqlParameter("@chType",SqlDbType.Char,1), }; sp[0].Value = nGridID; sp[1].Value = strDocID; sp[2].Va…
SqlDataReader 高效,功能弱,只读访问SqlDataAdapter 强大,要求资源也大一点 SqlDataReader 只能在保持跟数据库连接的状态下才可以读取... SqlDataAdapter 大多情况下是一次性读取一个表,然后填充到DataSet中,然后就可以断开跟数据库的连接了. 两者区别主要是   在线 和 离线 的区别..... 一:SqlDataReader rd;rd=cmd.ExecuteReader(); 比较高效,如果只是显示数据,当然要用这个 二:SqlDat…
1.SqlDataReader,在线应用,需要conn.open(),使用完之后要关闭. SqlConnection conn = new SqlConnection(connStr); //conn.Open();SqlCommand cmd = new SqlCommand("select top 10 * from tuser", conn);SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnect…
自己在折腾代码的时候发现,SqlDataReader读取分页数据,存储过程中的输出参数总页数pageCount获取不准确. 我已经问过百度,技术群等..... 都说SqlDataReader用过后关闭,但是每次读取一定条数的数据,总数据并没有读完,总页数就不能获取到么? 下面把关键的代码贴出来,我相信很多小伙伴跟我遇到相同的问题,希望大牛帮忙看一下,最好能深入的讲一下,万分感谢...... 存储过程: CREATE PROC Paged @pageIndex INT, @pageCount IN…
在自学杨中科老师的视频教学时,拓展编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时 会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,错误产生时,我的代码如下: SqlHelper.cs代码如下: public static SqlDataReader ExecuteReader(string sql)         {             using (SqlConnection conn = new…
主要用在ExecuteReader(c)中,如果想要返回对象前不关闭数据库连接,须要用CommandBehavior.CloseConnection: CloseConnection解决了流读取数据模式下,数据库连接不能有效关闭的情况.当某个XXXDataReader对象在生成时使用了CommandBehavior.CloseConnection,那数据库连接将在XXXDataReader对象关闭时自动关闭. 由于流模式读取数据库的特点,在具体应用时很难确定数据库连接何时才能被关闭,因为读取的动…
不管是啥xxDataReader,都是继承DataReader实现的,所以是有共性的,因此标题就以DataReader为题了. 情况一:DataReader 默认链接不关闭 static void Main(string[] args) { SqlConnection con = new SqlConnection("server=.;database=MySpace;uid=sa;pwd=123456"); con.Open(); SqlCommand com = new SqlCo…
什么是ADO.NET: ADO.NET就是一组类库,这组类库可以让我们通过程序的方式访问数据库,就像System.IO下的类操作文件一样, System.Data.这组类是用来操作数据库(不光是MSSql Server),它提供了统一的编程接口让操作其它数据库(Access.Oracle等)的方式和操作MSSql Server一致 ADO.NET组成 数据提供程序(常用类) Connection:用来连接数据库 Command:用来执行SQL语句 DataReader:只读.只进的结果集,一条一…