一.Ado.net的核心

  Ado.net的核心为两组重要的类,一个负责处理软件内部的实际数据(DataSet),另一个负责与外部数据系统通信(DataProvider)

   DataSet:包含一个或多个DataTable对象的集合,这些对象有数据行和数据列以及主键,外键,约束有关DataTable对象中数据的关系信息组成

   DataProvider(.NET数据提供程序):包含四个重要的对象

    Connection对象提供与数据源的连接.

    Command对象与操作数据库的数据库命令相关

    DataReader对象从数据源中提供快速的,只读的数据流.

    DataAdapter对象,使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet中,是DataSet中的数据与数据源中的数据保持一致

二.连接字符串

  连接字符串,就是这样一组被格式化的键值对:它告诉ADO.NET数据源在哪里,需要什么样的数据格式,提供什么样的访问信任级别以及其他任何包括连接的相关信息

  连接字符串中的几个常见内容:

    DataSource:需要连接的服务器,

    Initial Catalog:默认连接的数据库名称.

    User Id:数据库所有者用户名

    Password:密码

  构造连接字符串的两种方法:

    普通的:

      string Constr = "DataSource="localhost";Initial Catalog="User";User Id="sa";password=123"

    使用DbConnectionStringBuilder类来新建字符串:

1 SqlClient.SqlConnectionStringBuilder builder =2     new SqlClient.SqlConnectionStringBuilder();3 builder.DataSource = @"(local)\SQLEXPRESS";4 builder.InitialCatalog = "myDataBase";5 builder.IntegratedSecurity = true

  将连接字符串保存在配置文件中:

在我们实际开发中,我们一般不会把连接字符串直接写在代码中,而是存储在配置文件里。把连接字符串写死在代码中,不便于维护,每次修改字符串时,还得重新编译代码。以ASP.NET应用程序为例,我们一般把连接字符串写在web.config配置文件的<connectionstrings />节点。例如:

1 <connectionStrings>2    <add name="connStr" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=myDataBase;Integrated Security=SSPI" />3 </connectionStrings>

因此,我们只需要在程序中添加相应代码来获取配置文件中的值,比如:

string connStr = ConfigurationManager.ConnectionStrings["connStr"].ToString();

三.理解Connection对象

  如果把数据源比作一扇大门,连接字符串就是打开这扇大门的钥匙,Connection对象就是拿着这把钥匙打开大门的人 

  对于ADO.NET而言,不同的数据源,都对应着不同的Connection对象。具体Connection对象如下表:

名称 命名空间 描述
SqlConnection System.Data.SqlClient 表示与SQL Server的连接对象  
OleDbConnection System.Data.OleDb 表示与OleDb数据源的连接对象                   
OdbcConnection System.Data.Odbc 表示与ODBC数据源的连接对象                                                                         
OracleConnection System.Data.OracleClient 表示与Orale数据库的连接对象

  必须掌握的几个方法:

    open方法:使用连接字符串配置好的信息打开相应的数据源

    Dispose方法:释放由Component所占用的资源

    Close方法:关闭连接

  必须掌握的几个属性:

    Database:在连接之前获取连接字符串中指定的连接数据库,在连接之后获取连接的数据库

    DataServer:获取连接的服务器

    state:获取描述连接状态的字符串

    ConnectionString:获取或设置用于打开连接的字符串

    ConnectionTimeOut:获取终止尝试连接之前所等待的时间

    ConnectionState:枚举类型,包括以下成员:

      Closed:连接出于关闭状态

      Open:连接出于打开状态

      Executing:连接正在执行命令

      broken:连接中断

      Connecting:正在进行连接

      Fetching:连接对象正在检索数据

  连接Sql Server数据库的实例:

 using System;
 using System.Collections.Generic;
 using System.Data;
 using System.Data.SqlClient;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;

 namespace ConsoleApp5
 {
     class Program
     {
         static void Main(string[] args)
         {
             //构造连接字符串
             SqlConnectionStringBuilder connStr = new SqlConnectionStringBuilder();
             connStr.DataSource = "DESKTOP-0MBGCKA\\SQL2016";
             connStr.InitialCatalog = "stu";
             connStr.IntegratedSecurity = true;

             SqlConnection conn = new SqlConnection();//创建连接Sql Server 的Connection对象
             conn.ConnectionString = connStr.ConnectionString;//设置连接字符串

             conn.Open();//打开连接

             if (conn.State == ConnectionState.Open)
             {
                 Console.WriteLine("连接成功,连接已经打开");
             }
             conn.Close();//关闭连接
             conn.Dispose();//释放资源
             if (conn.State == ConnectionState.Closed)
             {
                 Console.WriteLine("连接已关闭");
             }
             Console.Read();
         }
     }
 }

   连接数据库的步骤:

     ①.创建连接字符串

     ②.创建连接对象

     ③.设置连接字符串

     ④.打开连接

     ⑤关闭连接

     ⑥释放资源     

  

Ado.net之连接数据库的更多相关文章

  1. C#通过Ado.net对连接数据库并进行添加删除等常规操作的代码

    如下资料是关于C#通过Ado.net对连接数据库并进行添加删除等常规操作的内容. static string sqlcon = "server=.;database=;Integrated ...

  2. 【2017-04-18】Ado.Net C#连接数据库进行增、删、改、查

    一.简介 1.ado.net是一门数据库访问技术. 他可以通过程序来操作数据库 2.类库 Connection 类 和数据库交互,必须连接它.连接帮助指明数据库服务器.数据库名字.用户名.密码,和连接 ...

  3. ado.net 用c#与数据库连接实现增删改查

    ADO.NET: 数据访问技术 就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 是所有数据访问技术的基础 ...

  4. 分析 "ADO" "ADODB" "ADODC" 之间的区别与联系

    在敲学生信息管理系统的时候,通过查阅了解了一些关于 ADO / ADODB / ADODC / 的简单描述,想想将他们对 比着总结一下更容易理解记忆.尽管都是一些浅显的东西,不过对像我这样的菜鸟们还是 ...

  5. 关于ADO.NET的一些知识整理

    ADO.NET是什么 虽然我们都知道ADO.NET是对数据库的操作,但是要真的说出ADO.NET的具体含义还不是很容易. ADO.NET是ActiveX Data Objects的缩写,它是一个COM ...

  6. ADO.NET 二(Connection)

    C# 语言中 Connection 类是 ADO.NET 组件连接数据库时第一个要使用的类,也是通过编程访问数据库的第一步. 接下来了解一下 Connection 类中的常用属性和方法,以及如何连接 ...

  7. C# Connection:连接数据库---转载

    C# 语言中 Connection 类是 ADO.NET 组件连接数据库时第一个要使用的类,也是通过编程访问数据库的第一步. 接下来我们来了解一下 Connection 类中的常用属性和方法,以及如何 ...

  8. 浅谈SQL注入风险 - 一个Login拿下Server

    前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...

  9. MVC知识点01

    1:母版页都 放在View/Shared里面,而且全部的视图页面都可以去用母板页. **母板的应用要用到嵌套,@RenderBody();将别的网页的内容全部显示在此处,它就相当于一个占位符. 2:架 ...

随机推荐

  1. css的性质

    css两个性质: 1.继承性 2.层叠行(选择器的一种选择能力,谁的权重大就选谁) A.选不中,走继承性,(font系列.color.text系列)权重是0 a)有多个父级都设置了这样的样式   走就 ...

  2. C++中的指针,指针函数和函数指针

    指针是C或C++中的一大难题,因此弄懂指针对C和C++的学习有很大的帮助,最近一直在研究指针,因此写一篇随笔把心得记录一下. 简单来说指针也是一种变量,只不过指针变量所存储的不是我们直观上看到的,而是 ...

  3. Install MariaDB on Ubuntu server

    本文所描述的安装方法实用于一下软件环境 ,不能保证使用于其他版本,请参考自己实际情况调整安装方法及参数. 操作系统版本:Ubuntu Server 14.04 LTS 64bit 欲安装MariaDB ...

  4. C++中字符数组与string的相互转换

    字符数组转化成string类型char ch [] = "ABCDEFG";string str(ch);//也可string str = ch;或者char ch [] = &q ...

  5. .NET平台

    .nat 是一种跨语言的平台 类跟对象回顾 由于对象归纳类 是归纳对象共性的过程 在类似的基础上  将状态和行为实体话为对象的过程称为实例话 只写属性   只包含set访问器 只读属性  只包含get ...

  6. 【java多线程】队列系统之PriorityBlockingQueue源码

    一.二叉堆 如题,二叉堆是一种基础数据结构 事实上支持的操作也是挺有限的(相对于其他数据结构而言),也就插入,查询,删除这一类 对了这篇文章中讲到的堆都是二叉堆,而不是斜堆,左偏树,斐波那契堆什么的  ...

  7. Django学习笔记之数据库-数据库与模型

    MySQL数据库 在网站开发中,数据库是网站的重要组成部分.只有提供数据库,数据才能够动态的展示,而不是在网页中显示一个静态的页面.数据库有很多,比如有SQL Server.Oracle.Postgr ...

  8. 《精通python网络爬虫》笔记

    <精通python网络爬虫>韦玮 著 目录结构 第一章 什么是网络爬虫 第二章 爬虫技能概览 第三章 爬虫实现原理与实现技术 第四章 Urllib库与URLError异常处理 第五章 正则 ...

  9. 黄聪:xampp启动后mysql报Error

    2013-08-04 13:48:22 760 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous t ...

  10. 减小delphi体积的方法

    1.关闭RTTI反射机制  自从Delphi2010中引入了新的RTTI反射机制后,编译出来的程序会变得很大,这是因为默认情况下 Delphi2010 给所有类都加上了反射机制.而我们的工程并不每每都 ...