C# USING ADO.NET

作为一个初学者,内容摘自网络.

使用using,能在使用完之后,进行资源的自动释放。

例如:  SqlConnection conn = new SqlConnection(ConnStr);
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            cmd.ExecuteNonQuery();
            conn.Close();
            conn.Dispose();

与下面的语句是等效的:

using (SqlConnection conn = new SqlConnection(ConnStr))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.ExecuteNonQuery();
            }

我们可以看出,在using语句中,省去了“conn.Close()”“conn.Dispose”操作,即无需手动编程关闭链接和释放资源。

using 语句允许程序员指定使用资源的对象应当何时释放资源。为 using 语句提供的对象必须实现IDisposable 接口。此接口提供了 Dispose 方法,该方法将释放此对象的资源。可以有多个对象与 using 语句一起使用,但是必须在 using 语句内部声明这些对象。

可以在到达 using 语句的末尾时,或者在该语句结束之前引发了异常并且控制权离开语句块时,退出using 语句。

using语句的本质:

使用using语句实际上生成的IL代码中是一个try, finally代码块,在finally代码块里释放资源。

1.使用using 来对数据库进行操作,using是资源释放的一种缩写,用于实现了实现了IDisposable接口(释放对象资源的接口是IDisposable)

private void button2_Click(object sender, RoutedEventArgs e)
        {
            //source 那边用点代表本机如果是其它机器你可以用ip地址,(本机也可以用127.0.0.1)
            using (SqlConnection conn = new SqlConnection(  
               "Data Source=127.0.0.1;Initial Catalog=OrderDB;User ID=sa;Password=123456789"))
            {
                conn.Open();//要先打开连接
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    //插入数据
                    cmd.CommandText = "insert into admin(name,password,rank) values(‘hello‘,‘123456‘,1)";
                    cmd.ExecuteNonQuery();
                }
                using (SqlCommand cmd = conn.CreateCommand()) 
                {
                    //参数的使用
                    cmd.CommandText = "select * from admin where [email protected]";
                    cmd.Parameters.Add(new SqlParameter("@rank", 2));
                    //因为SqlDataReader实现了IDisposable接口,释放对象资源的接口是IDisposable
                    using (SqlDataReader reader = cmd.ExecuteReader()) 
                    {   
                        //查询到结果放在数据库中没有放到客户端中,以后可以用DataSet处理
                        while (reader.Read())
                        {
                            string name = (string)reader.GetString(0);
                            MessageBox.Show(name);
                        }
                    }
                    
                }
          }
}

添加配置文件 :

在Winform下要新增App.config文件,在Asp.net下要新增web.config文件。

1.打开配置文件添加相关代码后如下即可:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="myconn" connectionString="Data Source=.;Initial Catalog=Northwind;
         Persist Security Info=True;User ID=sa;Password=110"/>
  </connectionStrings>
</configuration>

2.添加using System.Configuration;并在项目上右键“添加引用”->.Net组件中"Using Configuration"

如果不在组件中添加引用的话,后续的代码编译不过。

 

3.如下为读取数据的相关代码

 private void button1_Click(object sender, EventArgs e)
        {
            string connstr = ConfigurationManager.ConnectionStrings["myconn"].ConnectionString;
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                SqlCommand comm = new SqlCommand("select FirstName from Employees", conn);
                conn.Open();
                SqlDataReader sdr = comm.ExecuteReader();

                while (sdr.Read())
                {
                    listBox1.Items.Add(sdr[0].ToString());
                }
            }
        }

时间: 2025-01-01 21:12:52

C# USING ADO.NET的相关文章

ODBC、ADO

一.VC访问数据库的技术 1.ODBC --Open Database Connectivity微软开放式数据互联,一组用于访问和操作数据库的API,可以访问不同的数据库产品,但只能访问关系型数据库.MFC将这组API函数封装成ODBC类,使用前需要将不同的数据库设置为ODBC数据源. 2.DAO --基于ODBC的,目前已经被淘汰 3.OLE DB  --基于COM技术的,提供了一组用于访问和操作数据库的接口.既可以访问关系型又可以访问非关系型数据,性能也有了很大提高.缺点是学习难度大,对程序

一种利用ADO连接池操作MySQL的解决方案(VC++)

VC++连接MySQL数据库 常用的方式有三种:ADO.mysql++,mysql API ; 本文只讲述ADO的连接方式. 为什么要使用连接池? 对于简单的数据库应用,完全可以先创建一个常连接(此连接永远不关闭,直接数进程退出),但是这样做至少会引起两个问题:(1)资源竞争,多个数据库请求操作不能同时进行,后一请求必须要等到前一请求完成后才能进行:(2)多线程情况下容易出现混乱,甚至出现资源异常释放.还有一种方法,就是使用数据库时创建连接,使用完后关闭连接回收资源.这种方式在数据库操作频繁的情

巩固ADO.NET

回想一年半前学数据库的时候是找的培训视频看的,大概10天视频(有一半多时间关于数据库操作的winform)的内容看完后数据库这块就没有了,还以为自己学的挺好,现在想想真是傻的可爱.虽然以ADO.NET为基础的EF挺好用的,但抽时间好好巩固下基础我觉得很重要.不废话了,ADO.NET提供对SQL.Oracle和MySql等数据库的访问操作,它有2个重要的组成部分:.NET数据提供程序和数据集DataSet. 1.什么是ADO.NET .NET数据提供程序就是一个类集,本质的功能就是用于连接数据库.

CRUD Operations In ASP.NET MVC 5 Using ADO.NET

Background After awesome response of an published by me in the year 2013: Insert, Update, Delete In GridView Using ASP.Net C#. It now has more than 140 K views, therefore to help beginners I decided to rewrite the article i with stepbystep approach u

异常:error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name &#39;System.Data.SqlClient&#39;

error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient' error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'. Make sure the pro

ADO.NET

1.vb.net: vb.net自身并不具备对数据库进行操作的功能,它对数据库的处理通过.NET Framwork SDK中面向数据库编程的类库和微软的MDAC 来实现的,其中ADO.NET 是.NET Framwork SDK重要组成部分.它是.NET Framwork SDK中用以操作数控的类库的总称. 2.ado.net     1.命名空间:在使用前先引用 imports system.data imports system.sqlclient 2.ado.net的核心内容 Connec

数据库的连接使用——使用ADO.NET连接数据库

一.ADO.NET简介 ADO.NET是由很多类组成的一个类库,这些类库提供了很多对象,用来完成数据的连接.查询.插入.更新和删除等操作.其中主要包括以下对象: 1.Connection对象:用来连接到数据库(OLE DB使用OleDbConnection,SQL SERVER使用SqlConnection) 2.Command对象:用来对数据库执行SQL命令,如插入.删除.修改.查询 3.DataReader对象:用来从数据库返回只读数据 4.DataAdapter对象:与DataSet对象结

.NET Core中ADO.NET SqlClient的使用与常见问题

一.简介 在很多要求性能的项目中,我们都要使用传统的ADO.NET的方式来完成我们日常的工作:目前有一些网友问有关于.NET Core操作SQL Server的问题在本文中解答一下. 本文旨在指出,在.NET Core中使用ADO.NET SqlClient操作SQL SERVER数据库时的一些常见的问题,在本文的第三部分,如果只关心解决问题,请跳过第两部分进行阅读. 二.使用ADO.NET 首先建立好一个ASP.NET MVC Core Project 或 .NET Core Class Li

ADO.NET数据访问技术概览

1. 以数据为中心的应用程序设计 1.1. ADO.NET 支持下列的存储类型? 无结构? 有结构, 无层次的数据 – 以逗号分离的数据(CSV) 文件.Microsoft Excel 电子表格.Microsoft Exchange 文件.Active Directory 文件等? 有层次的数据 – XML 文档等? 关系型数据库 – SQL Server.Oracle.Access 等. 1.2. 连接环境? 连接环境是指用户在这种环境下始终保持与数据源的连接? 优点 – 环境易于实施安全控制

使用ADO实现BLOB数据的存取 -- ADO开发实践之二

使用ADO实现BLOB数据的存取 -- ADO开发实践之二 http://www.360doc.com/content/11/0113/16/4780948_86256633.shtml 一.前言 在上一篇文章<>中我们详细介绍了ADO基本的操作方法,在实际的开发过程中我们常常需要存储较大的二进制数据对象,比如:图像.音频文件.或其它二进制数据,这些数据我们称之为二进制大对象BLOB(Binary Large Object),其存取的方式与普通数据有所区别.本文将介绍利用ADO在数据库中存取B