首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据库之ADO.NET基础知识整理

(多次打开问题:ConnectionState枚举) 关闭连接 //相当于设置了路障 释放资源 //相当于把路拆了,这块地可以盖楼了。...创建SqlCommand对象:          通过new关键字创建 使用后同样需要 关闭 释放 资源, 所以同样可以使用using 下面掩饰sqlConnection,sqlcommand,以及三种方法...7.连接池的原理总结 1.第一次打开连接会创建一个连接对象。 2.当这个连接关闭(调用Close()方法)会将当前那个连接对象放入池中。...的方法关于Connection的关闭、异常与资源释放问题: 当使用using可以不加try-catch,但是在返回SqlDataReader的方法没有使用using,所以这时应该增加一个try-catch...网上有微软提供的最全的SQLHelper类,是Enterprise Library的一部分 3. sqlconnection在程序中一直保持它open可以

1.9K20

浅谈ADO.NET的对象——Connection、Command、DataReader、DataAdapter、DataSet、DataTable

SqlDataReader的Read()方法返回值为布尔类型,向下读取如果下一条存在数据,则返回True,如果不存在数据,则返回False,类似于VB的EOFBOF。...需要注意的是:一个SqlConnection连接下只允许打开一个SqlDataReader,此时这个SqlConnection对象只为这一个SqlDataReader服务,如果还想再打开一个SqlDataReader...SqlDataAdapter通常DataSet一起使用,上图中,左边的部分在SqlCommandSqlDataReader进行操作的同时,SqlConnection都保持在打开的状态;右边部分的工作流程为...SqlDataAdapter与DataSet的连接关闭,当DataSet的数据更新,SqlDataAdapter再将DataSet更新后的数据 “搬运” 到数据库并更新(通过SqlDataAdapter...SqlConnection对象conn,节省系统资源

1.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

使用C#进行数据库增删改查(一)

,我们还要了解一个类叫SqlParameter,一个SqlParameter就是一个键值对,它的键是sql语句中的变量,值是就是执行sql的实际的数据,具体声明如下: SqlParameter parameters...会先创建一个实体对象,一个实体对象对应数据库的一行数据。...执行查询操作,需要调用SqlCommand的ExecuteReader()方法,改方法返回一个SqlDataReader对象,通过这个对象,我们可以获取数据,它的两个常用属性的用法在代码注释已写出,下面着重介绍...在获取数据,我们可以根据列数(列数0开始)对应的数据类型准确获取到数据,如:SID它是一个int类型,在第一列,我们就可以使用GetInt32(0)来获取到这个数据。...另外,我们还可以通过列名去访问:如reader["SID"],这样就会获取到当前这一行列名为SID的数据。 使用using是为了运行结束后可以及时的释放资源,防止内存泄漏。

1.4K10

重新审视SqlDataReader的使用

ADO.NET 1.x 利用SqlDataReader读取数据,针对每个结果集需要一个独立的连接。...当然,你还必须管理这些连接并且要付出相应的内存潜在的应用程序的高度拥挤的瓶颈代价-特别是在数据集中的Web应用程序。      ...使用SqlServer 2005,可以在一个Command对象上同时打开多个DataReader,节约数据库联接所耗费的服务器资源,在实际开发普遍存在的一种典型的数据库读写数据的情形是,你可以使用多重连接而现在只用一个连接就足够了...例如,如果你有一些来自于几个表的数据-它们不能被联结到一个查询,那么你就会有多重的连接-每个连接都有一个与之相关连的命令用于读取数据。...conn = new SqlConnection(connstr); conn.Open(); SqlCommand cmd1 = new SqlCommand

71290

ado.net的简单数据库操作(二)之封装SqlHelperl类

第二步:确定类中方法的参数 我们在编写SqlHelper类,肯定是希望把固定不变的东西写在类,然后把那些变化的,需要我们手动输入的东西变成参数传递进来,那么哪些内容是需要我们通过参数传进来的呢?...这样做的好处是,我们不用在每个SqlHelper方法定义conStr字符串,那么我们就可以把封装好的SqlHelper用在任意一个项目连接任意数据库了。 以上是确定的几个参数。...后,在关闭reader的同时,在SqlDataReader内部会将关联的Connection对象也关闭掉 14 15 } 16 catch...记得我们前面说过,这个方法返回的对象 reader它不是一个装东西的仓库,它只是一个纽带,那么我们返回这个东西后,我们还要用这个东西来数据库取值,但是如果用using的话,那默认就是using结束后就把数据库关掉了...后,在关闭reader的同时,在SqlDataReader内部会将关联的Connection对象也关闭掉,也关闭掉,也关闭掉!

75520

mysql executereader_“c#”“ExecuteReader”是什么意思?「建议收藏」

ExecuteReader 返回一个 DataReader对象:如果在SqlCommand对象调用,则返回SqlDataReader;如果在OleDbCommand对象调用,返回的是OleDbDataReader...可以调用DataReader的方法属性迭代处理结果集。它是一个快速枚举数据库查询结果的机制,是只读、只进的。对SqlDataReader.Read的每次调用都会结果集中返回一行。...所以我们在判断是否有数据,只可以用ExecuteReader()的REad()方法来检测。 ④: DataReader还有一个GetValue方法可以用来检索字段的值。...GetValue返回一个一般性的Object,但是被无数个返回强类型的Get方法补充,比如GetInt32GetDecimal(参考MSDN2005)。...ex.Message); } finally { ======================================================== — 可以配置DataReader,使它真的可以关闭一个底层连接

1.4K20

Asp.NetCore Web开发之ADO.Net

使用其连接数据库也很简单,我们先来看普通版,需要用到两个类: SqlConnection SqlCommand 一个类负责连接,一个类负责执行sql语句 请看如下代码: using(SqlConnection...connection=new SqlConnection("ConnectionString")) { using (SqlCommand command=new SqlCommand...使用完毕后,要调用连接对象的Close()方法,关闭连接,并且最好再调用Dispose()方法释放掉连接。若使用using,则系统会自动释放。...有些时候,我们需要一次性更改多个表的数据,一条执行失败就要回滚数据,这就要用到ADO.Net的事务: using (SqlConnection connection = new SqlConnection...(connectionString)) { connection.Open(); //创建一个命令对象 using (SqlCommand command = connection.CreateCommand

71630

mysql executereader_ExecuteReader的用法

ExecuteReader 返回一个 DataReader对象:如果在SqlCommand对象调用,则返回SqlDataReader;如果在OleDbCommand对象调用...可以调用DataReader的方法属性迭代处理结果集。它是一个快速枚举数据库查询结果的机制,是只读、只进的。对SqlDataReader.Read的每次调用都会结果集中返回一行。...所以我们在判断是否有数据,只可以用ExecuteReader()的REad()方法来检测。 ④: DataReader还有一个GetValue方法可以用来检索字段的值。...GetValue返回一个一般性的Object,但是被无数个返回强类型的Get方法补充,比如GetInt32GetDecimal(参考MSDN2005)。...ex.Message); } finally { ======================================================== — 可以配置DataReader,使它真的可以关闭一个底层连接

46550

.NET基础拾遗(6)ADO.NET与数据库开发基础

下图展示了数据库连接池的机制,在该机制,当一个用户新申请了一个数据库连接,当数据库池内连接匹配的情况下,用户会连接池中直接获得一个被保持的连接。...在用户使用完调用Close关闭连接,连接池会将该连接返回到活动连接池中,而不是真正关闭连接。连接回到了活动链接池中后,即可在下一个Open调用重复使用。 ?   ...我们可以看看下面一段代码,三个不同的连接,第三个复用第一个连接,第二个则无法复用第一个连接: using (SqlConnection connection = new SqlConnection...(1)连接式的访问   连接式的访问是指读取数据保持和数据库的连接,并且在使用时独占整个连接,逐步读取数据。这种模式比较适合数据量庞大的数据库查询数据,并且不能确定读取数量的情况。...下面的一段示例代码展示了这一读取模式的典型使用,首先是数据访问层的静态方法,该方法返回一个指定SQL命令返回的SqlDataReader独享,该对象呗关闭时会自动关闭依赖的数据库连接。

91630

ado.net的简单数据库操作(一)

(3)打开连接 (4)数据库操作 (5)关闭连接,释放资源 直接看代码吧: using (SqlConnection con = new SqlConnection(constr)) {...2.创建一个执行sql语句的对象   这个创建连接对象一回事,要用到一个这 ==》SqlCommand (这个类的空间没引进来,需要shift + alt + f10 引入),怎么写?...这里有三个方法可用,分别是: (1)ExecuteNonQuery():这个方法怎么用呢,执行所有的sql语句都能用?显然,不能够啊。...在看看第三个: (3)ExcuteReader():上一个讲的是,当查询单个记录使用的方法,那么如果我要查询一个表中所有的数据,还要把他显示出来,该怎么办呢?...就通过DataReader来拿,这个DataReader啊,它不是一个袋子,在里面装东西,它不是袋子,他是一个人,是一个帮手,是一个纽带,你只能通过这个东西的帮忙,才能把你查询的数据数据库内存里拿过来

76651

C#操作Sql Server数据库以及MD5加密存储

在账号登录我们需要判断输入的密码是否正确,而MD5加密是不可逆的 也就意味着它无法解密,所以我们需要将用户输入的密码再加密一次然后再与数据库已加密存储的密码进行比对,如果比对结果一致则登陆成功。...+ "' AND password ='" + password + "'", connection); ③SqlDataReader:创建一个查询一条或多条数据的对象,提供只读单向数据的快速传递。..., "通知", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); //登录成功 data.Close(); //关闭SqlDataReader对象...下面再简单地写一下sql server读取某张表的数据信息,就拿借书办理这个界面的查询书籍列表为例吧。 ④DataSet:创建一个本地数据存储对象,其实就是数据在内存区的缓存。...DataSet ds = new DataSet(); //实例化DataSet对象 ⑤SqlDataAdapter:创建一个用于检索保存数据的对象,可以用来填充DataSet。

1.9K20

C#学习笔记 ADO.NET

如果要使用这种登录方式,去掉连接字符串的用户名密码部分,然后添加一个Integrated Security=SSPI;。连接字符串可以在VS的数据库窗口的属性上查看。...直接用连接字符串创建一个SQLConnection对象即可,如果没有异常发生,就说明连接成功。...这里将SqlConnection放入using语句中,确保即使出现异常,数据库连接也可以关闭,并及时释放资源。...对于SQLCommand,还提供了一个额外的方法ExecuteXmlReader,它返回一个XMLReader,可以将SQL数据库的内容转化成Xml格式。...打开MySQL数据库,新建一个test数据库,数据表和数据仍然使用上面的student数据表。由于只使用了最简单的数据库语句,因此在这些数据库基本是通用的。

78220

c#操作数据库(winform如何修改数据库设置)

OK,事情就是这样你可以在程序创建多个数据库连接对象,可以为SqlCommand对象随意指定一个数据库连接对象。...下面我们说下数据库查询数据。...最常用的有三种查询数据的方式,我们先介绍SqlCommand对象的ExecuteReader方法,此方法的返回值为SqlDataReader对象,这个对象也是ADO,NET中一个非常重要的对象,这个对象在程序和数据库之间建立了一个流...也是有行列组成的一个表格,每个单元格存储的都是数据。...执行CommandText属性所对应的sql语句 将查询的结果填充到DataTable OK,现在我们已经完成了数据查询数据的工作,接下来就是如何操作这些数据了。

2.2K10
领券