简述ADO.NET的连接层

ADO.NET数据库交互详解
本文详细介绍了使用ADO.NET进行数据库操作的过程,包括连接数据库、执行SQL查询、使用数据读取器处理记录等步骤。同时,深入探讨了连接字符串的构建方式及DbConnection、DbCommand对象的使用方法。

前面曾提到过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 = 30;
            sb.IntegratedSecurity = true;
            //
            string cnstr = @"Data Source=服务器名;" + "Integrated Security=SSPI;Initial Catalog=数据库名";
            SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder(cnstr);
            sb.ConnectTimeout = 5;
            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()在数据源上创建该命令的准备好(或已编译)的版本,找们知道这样一个查询的执行速度会稍微快些(特别是在你想多次执行相同查询的情况下)

 

  

 

转载于:https://www.cnblogs.com/goodstudyqiiqi/p/10156704.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值