Ado.net之连接数据库
一.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之连接数据库的更多相关文章
- C#通过Ado.net对连接数据库并进行添加删除等常规操作的代码
如下资料是关于C#通过Ado.net对连接数据库并进行添加删除等常规操作的内容. static string sqlcon = "server=.;database=;Integrated ...
- 【2017-04-18】Ado.Net C#连接数据库进行增、删、改、查
一.简介 1.ado.net是一门数据库访问技术. 他可以通过程序来操作数据库 2.类库 Connection 类 和数据库交互,必须连接它.连接帮助指明数据库服务器.数据库名字.用户名.密码,和连接 ...
- ado.net 用c#与数据库连接实现增删改查
ADO.NET: 数据访问技术 就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 是所有数据访问技术的基础 ...
- 分析 "ADO" "ADODB" "ADODC" 之间的区别与联系
在敲学生信息管理系统的时候,通过查阅了解了一些关于 ADO / ADODB / ADODC / 的简单描述,想想将他们对 比着总结一下更容易理解记忆.尽管都是一些浅显的东西,不过对像我这样的菜鸟们还是 ...
- 关于ADO.NET的一些知识整理
ADO.NET是什么 虽然我们都知道ADO.NET是对数据库的操作,但是要真的说出ADO.NET的具体含义还不是很容易. ADO.NET是ActiveX Data Objects的缩写,它是一个COM ...
- ADO.NET 二(Connection)
C# 语言中 Connection 类是 ADO.NET 组件连接数据库时第一个要使用的类,也是通过编程访问数据库的第一步. 接下来了解一下 Connection 类中的常用属性和方法,以及如何连接 ...
- C# Connection:连接数据库---转载
C# 语言中 Connection 类是 ADO.NET 组件连接数据库时第一个要使用的类,也是通过编程访问数据库的第一步. 接下来我们来了解一下 Connection 类中的常用属性和方法,以及如何 ...
- 浅谈SQL注入风险 - 一个Login拿下Server
前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...
- MVC知识点01
1:母版页都 放在View/Shared里面,而且全部的视图页面都可以去用母板页. **母板的应用要用到嵌套,@RenderBody();将别的网页的内容全部显示在此处,它就相当于一个占位符. 2:架 ...
随机推荐
- [转] C++ 和 python之间的互相调用
转载自:https://www.cnblogs.com/apexchu/p/5015961.html 一.Python调用C/C++ 1.Python调用C动态链接库 Python调用C库比较简单,不 ...
- Cannot find ./catalina.sh The file is absent or does not have execute permission This file is nee
从tomcat官网上下载了apache-tomcat-5.5.36.zip,在window xp系统里面解压以后,直接放在了linux服务器上. 进入tomcat/bin目录,执行启动的时候出现如下错 ...
- shell批处理文件,并将运算结果返回
问题背景是这样的:别人用C++写了一个算法,算法内部比较复杂,但是呢,对于编译好的文件用起来比较方便,比如在linux终端,my_program 1.png 2.txt这样就可以用,但是这样只能够输入 ...
- mod_conference ESL控制二(事件)
根据上篇所述功能需求,esl需要处理以下几类事件: ESL_EVENT_CHANNEL_* #channel相关事件,用户判断参会者是否应答.计费 DTMF事件 #识别参会者按键,根据按键进行操作( ...
- Python全栈之路----常用模块----包及跨模块导入
当你的模块文件越来越多,就需要对模块文件进行划分,比如把负责跟数据库交互的都放一个文件夹,把与页面交互相互的放入一个文件夹. 像上面这样,一个文件夹管理多个模块文件,这个文件夹就被称为包. 那不同包之 ...
- jquery常用指令
table中td多行展示: ```css td { word-wrap: break-word; } ``` div模态框: <div id="loading" style= ...
- BEAM188和LINK180简单实例
简介 一开始想做一个绳索单元悬挂重物的仿真,其实想法很简单,但是在实现过程中却出现了很大的问题,纠结了很久,初步归结为:绳索单元在垂直其单元方向上受力,会导致其产生很大的变形,从而导致其不收敛.因此专 ...
- xamarin android 报错 Could not load assembly 'Xamarin.Android.Support.v7.AppCompat
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 Exception while loading assemblies: System.IO.FileNotFoundException: Cou ...
- PythonStudy——可变与不可变 Variable and immutable
ls = [10, 20, 30] print(id(ls), ls) ls[0] = 100 print(id(ls), ls) print(id(10)) print(id(20)) print( ...
- .net updatePannel 局部刷新效果实现后,但是仍是全部刷新的修改方法
最近做了一个小例子,就是晚上都有的那种小的updatepannel的局部刷新的小例子,但是发现按照那个例子虽然能够实现label2的局部刷新,但是看上去效果确实整个页面都在刷新,这让人很头疼,所以我在 ...