简述ADO.NET的连接层
前面曾提到过ADO.NET的连接层允许通过数据提供程序的连接、命令、数据读取器对象与数据
库进行交互。当想连接数据库并且使用一个数据读取器对象来读取数据时.需要实现下面的几个步骤
* 创建、配置、打开连接对象。
* 创建、配置一个命令对象.通过构造参数或Connection 属性指定连接对象。
* 执行配置后的命令对象的 ExecuteReader()方法。
* 使用数据读取器的 Read()方法一条一条处理记录。
using (SqlConnection cn = new SqlConnection())
{
cn.ConnectionString = "server=服务器名;User ID=用户名;Password=密码;database=数据库名";
cn.Open();
string sql = "select top 10 * from TCustomer";
SqlCommand cmd = new SqlCommand(sql, cn);
using (SqlDataReader adater = cmd.ExecuteReader())
{
while (adater.Read())
{
Console.WriteLine(adater["CustomerId"]);
}
}
}
使用连接对象
使用数据提供程序需要做的第一步就是使用连接对象(前面说过从DbConnection继承)去和数据库建立一个会话。.NET连接对象需要称一个符合一定格式的连接字符今进行创建。通常它包含了几对名称/值的信息并且通过分号分割。这些信息用来确定你想要连接的计算机名、必要的安全配置、机器上数据库的名字和其他一些数据提供程序特有的信息。
Inltlal cata1og 名涉及我们需要建立会话的数据库。 DataSource 名表示维护数据库的机器名。在这里,(local)允许我们定义一个标识来指示当前本地机器(不管这个机器的名字是什么),而\ SQL ExpRES 标识通知SQL server 提供程序:正在连接到SQL serverExpRES默认版本的安装。(如果我们在完整版本的SQL server 上创建AutoLot,就只需要写Data Source=(local))
除了这些,我们还可以提供许多表示安全资格的标识。在这里.我们设置Integrated securlty 为SSPI (等价于 true ) .它使用当前的 windows 帐户凭据作为用户身份验证。
DbConnection类型成员
* BeginTransation() 用来开始教据库事务
* ChnageDatabase() 为打开的连接更改当前教据库
* ConnectionTimeout 这个只读属性返回建立连接时终止尝试并生成错误之前所等待时间(默认15秒)如果想修改这个值,请在连接字符串中加入Connect TimeOut 片段(Connect TimeOut=30 )
* DataBase 获取连接对象的教据库名
* DataSource 获取连接时象的教据库服务器名
* GetSchema() 返回一个包含数据源结构信息的DataTable对象
* State 这个只读属性获取当前连接状态.表示为 ConnectionState 枚举形式
DbConnection类型的这些属性实际上是只读的,只有我们想在运行时得到连接的一些特征时才会去用它们。如果需要修改这些默认设置的话,必须改变连接字符串本身
使用ConnectionStringBuilder对象
ConnectionStringBuilder:连接字符串析造函数对象.通过它能使用强类型化的属性来指定名称/值对。
Console.WriteLine("*****ConnectionStringBuilder****");
SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder();
sb.InitialCatalog = "数据库名";
sb.DataSource = @"服务器名";
sb.ConnectTimeout = ;
sb.IntegratedSecurity = true;
//或
string cnstr = @"Data Source=服务器名;" + "Integrated Security=SSPI;Initial Catalog=数据库名";
SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder(cnstr);
sb.ConnectTimeout = ;
using (SqlConnection cn = new SqlConnection())
{
cn.ConnectionString = sb.ConnectionString;
cn.Open(); }
使用连接对象
DbCommand类型的成员 | |
CommandTimeOut | 获取或设置在终止执行命令的尝试并生成错误之前的等待时间.默认 30秒 |
Connection | 获取或设置此DbCommand实例使用的DbConnection |
Parameters | 获取DbParameter对象的集合.用于参教化查询 |
Cancel() | 取消执行命令 |
ExecuteReader() | 执行SQL查询并返回一个数据提供程序的DbDataReader对象,以只读向前的方式访问查询结果 |
ExecuteNonQuery() | 提交SQL语句到数据库,不会有返回值(如插入、更新、删除或创建表) |
ExecuteScalar() | 一个轻量级版本的 EExecuteReader .用于返回一个值的查询(比如得到记录总数) |
Prepare() | 在数据源上创建该命令的准备好(或已编译)的版本,找们知道这样一个查询的执行速度会稍微快些(特别是在你想多次执行相同查询的情况下) |
简述ADO.NET的连接层的更多相关文章
- ADO.NET 之断开连接层
定义: 使用ADO.NET断开连接层,就会使用System.Data命名空间的许多成员(主要是DataTable.DataTable.DataRow.DataColumn.DataView和DataR ...
- ADO.NET之一:连接层
ADO.NET大部分由System.Data.dll核心程序集来表示. ADO.NET类库有三种完全不听的方式来实现数据访问:连接式.断开式和通过Entity框架.连接式就是会一直占用网络资源,断开式 ...
- 简述ADO中如何使用参数化的命令对象以及增删改查,存储过程的操作
连接数据库代码: private SqlConnection con = null; public void OpenConnection(string connectionString) { con ...
- 简述ADO.NET命名空间
system.data命名空间的类型 system.data命名空间的核心成员 命名空间 作用 Constraint 表示某个DataColumn对象的约束 DataColumn 表示某个DataT ...
- ASP.NET SignalR2持久连接层解析
越是到年底越是感觉浑身无力,看着啥也不想动,只期盼着年终奖的到来以此来给自己打一针强心剂.估摸着大多数人都跟我一样犯着这样浑身无力的病,感觉今年算是没挣到啥钱,但是话也不能这么说,搞得好像去年挣到钱了 ...
- caffe之(四)全连接层
在caffe中,网络的结构由prototxt文件中给出,由一些列的Layer(层)组成,常用的层如:数据加载层.卷积操作层.pooling层.非线性变换层.内积运算层.归一化层.损失计算层等:本篇主要 ...
- MySQL的三层架构之一----连接层
1.mysql的服务端可以分为三层,分别是连接层,SQL层,存储层. 2.架构图 3.连接层定义了通信server端与client协议:
- asp.net学习之ado.net(连接模式访问)
原文:asp.net学习之ado.net(连接模式访问) ado.net框架支持两种模式的数据访问: 连接模式(Connected)和非连接模式(disconnected).这一节介绍如何使用连 ...
- resnet18全连接层改成卷积层
想要尝试一下将resnet18最后一层的全连接层改成卷积层看会不会对网络效果和网络大小有什么影响 1.首先先对train.py中的更改是: train.py代码可见:pytorch实现性别检测 # m ...
随机推荐
- ruby整理
参考博客:https://www.cnblogs.com/felixzh/p/8081622.html 官网地址 https://rvm.io/rvm/install 一.前提 centos6.8下 ...
- Redis 实战篇之搭建集群
Redis 集群简介# Redis Cluster 即 Redis 集群,是 Redis 官方在 3.0 版本推出的一套分布式存储方案.完全去中心化,由多个节点组成,所有节点彼此互联.Redis 客户 ...
- 【EXCEL-折线图】百折不挠 | 用EXCEL画出与众不同的折线图(曲线图)
很多熟悉EXLCE的朋友都知道EXCEL在生成统计图表方面的强大功能,我们在写各类总结.报告.方案等文档时常涉及到各类统计数字,将统计数字用图表的形式展示出来,既直观又美观.下面我分享一种不一样的折线 ...
- rocketMQ安装中遇到的坑
安装步骤是这些: Prerequisite The following softwares are assumed installed: 64bit OS, Linux/Unix/Mac is rec ...
- Wmyskxz文章目录导航附Java精品学习资料
前言:这段时间一直在准备校招的东西,所以一晃眼都好长时间没更新了,这段时间准备的稍微好那么一点点,还是觉得准备归准备,该有的学习节奏还是要有..趁着复习的空隙来整理整理自己写过的文章吧..好多加了微信 ...
- 结合JDK源码看设计模式——单例模式
定义: 保证一个类仅有一个实例,并提供一个全局访问点 适用场景: 确保任何情况下这个对象只有一个实例 详解: 私有构造器 单利模式中的线程安全+延时加载 序列化和反序列化安全, 防止反射攻击 结合JD ...
- 小程序 wepy框架 + iview-weapp的用法
最近在弄wepy的时候在想有没有什么ui比较合适一点的wepy的,也是在网上看了好久发现iview还不错.引用简单,上手超快,组件绚丽!当然,这里还介绍下微信官方建议的框架也是和不错的,有需要的可以看 ...
- string转QBytearray
最近在程序中遇到要把图片的二进制string存成图片到本地,其实就是写文件 structCameraInfo tmpCameraInfo; string strData = tmpCalibrateR ...
- 关于openssl的交叉编译
最近有个项目用到openssl,于是去openssl的官方网站上下载了最新的版本,v1.1.1b版本. 解压之后,发现配置编译,可以使用./config或者./Configure来完成. 网上也查了一 ...
- hadoop 笔记(hive)
//**********************************//安装配置1. 修改配置文件 1.1 在conf文件夹下 touch hive-site.xml <configurat ...