简述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 ...
随机推荐
- springboot redis多数据源
springboot中默认的redis配置是只能对单个redis库进行操作的. 那么我们需要多个库操作的时候这个时候就可以采用redis多数据源. 本代码参考RedisAutoConfiguratio ...
- Jmeter-----【mac电脑】配置web浏览器的代理抓取请求
在测试中,不仅会涉及到APP中的数据测试,时常我们APP的数据需要与后台进行交互,因此我们不可避免的也需要对web进行接口测试,更准确的来说是使用web的接口来快速的帮我们实现App中所需的数据录入, ...
- SpringBoot Web Https 配置
不管是游戏服务器开发,还是其它服务开发,越来越多的平台都要求服务端必须支持https的访问.以增加安全性.比如目前火热的小程序,要求服务端必须支持https,苹果商店也有说http请求要修改为http ...
- 『Möbius函数与Möbius反演』
Möbius函数 定义 设正整数\(n\)算数基本定理分解后为\(n=\prod_{i=1}^{k}p_i^{a_i}\),定义函数 \[ \mu(n)= \begin{cases} 0\ \ (\e ...
- 解决vs2019中暂时无法为.net core WinForms使用 Designer 的临时方法
目录 解决vs2019中暂时无法为.net core WinForms使用 Designer 的临时方法 安装 vs 2019 professional/enterprise版本 在vs的设置里,勾选 ...
- uni-app实现顶部导航栏显示按钮+搜索框
最近公司准备做app,最终决定使用uni-app框架开发,但是当把设计图给我的时候我心里有点没底,因为他的设计图顶部长成这个样子: 因为这个功能在小程序是根本无法实现的,可能受这个影响,我感觉好像实现 ...
- Asp.Net Core使用SignalR进行服务间调用
网上查询过很多关于ASP.NET core使用SignalR的简单例子,但是大部分都是简易聊天功能,今天心血来潮就搞了个使用SignalR进行服务间调用的简单DEMO. 至于SignalR是什么我就不 ...
- C# 设置Excel中的数字字符串格式
在Excel中,数字字符串用不同格式表示,可代表不同数据意义.例如在财务报表里需要用特定的数字字符串格式来反映金额信息.货币币种.数据精确程度.增减趋势等等.下面分享如何通过C#编程来设置Excel表 ...
- Cookie、LocalStorage 与 SessionStorage的区别在哪里?
基本概念 Cookie Cookie 是小甜饼的意思.顾名思义,cookie 确实非常小,它的大小限制为4KB左右.它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码”,这通常就是通 ...
- 超好用的C#控制台应用模板
本文是Wei的公众号投稿文章: 默认模板之缺 在工作学习中,我们经常需要创建一些简单的控制台应用(Console App)去验证某个想法,或者作为小工具交付给其他同事. 通常我们的选择是 Visual ...