7.6 Connection连接对象

  在.NET开发中,通常情况下开发人员被推荐使用Access或者SQL作为数据源,若需要连接Access数据库,可以使用System.Data.Oledb.OleDbConnection对象来连接;若需要连接SQL数据库,则可以使用System.Data.SqlClient.SqlConnection对象来连接。使用System.Data.Odbc.OdbcConnection可以连接ODBC数据源,而System.Data.OracleClient.OracleConnecton提供了连接Oracle的一些方法。本章主要讨论连接Access和SQL数据库。

7.6.1 连接SQL数据库
  如需要连接SQL数据库,则需要使用命名空间System.Data.SqlClient和System.Data.OleDb。使用System.Data.SqlClient和System.Data.OleDb能够快速的连接SQL数据库,因为System.Data.SqlClient和System.Data.OleDb都分别为开发人员提供了连接方法,示例代码如下所示。
+展开
-C#
using System.Data.SqlClient;//使用SQL命名空间
using System.Data.Oledb;/使用Oledb命名空间

1.使用System.Data.SqlClient
连接SQL数据库,则需要创建SqlConnection对象,SqlConnection对象创建代码如下所示。
+展开
-C#
SqlConnection con = new SqlConnection();//创建连接对象
con.ConnectionString = "server='(local)';database='mytable';uid='sa';pwd='sa'";//设置连接字串

  上述代码创建了一个SqlConnection对象,并且配置了连接字串。SqlConnection对象专门定义了一个专门接受连接字符串的变量ConnectionString,当配置了ConnectionString变量后,就可以使用Open()方法来打开数据库连接,示例代码如下所示。
+展开
-C#
            SqlConnection con = new SqlConnection();//创建连接对象
            con.ConnectionString = "server='(local)';database='mytable';uid='sa';pwd='sa'";
            try
            {
                con.Open();//尝试打开连接
                Label1.Text = "连接成功";//提示打开成功
                con.Close();//关闭连接
            }
            catch
            {
                Label1.Text = "连接失败";//提示打开失败
            }

  上述代码尝试判断是否数据库连接被打开,使用Open方法能够建立应用程序与数据库之间的连接。与之相同的是,可以使用默认的构造函数来对数据库连接对象进行初始化,示例代码如下所示。
+展开
-C#
string str = "server='(local)';database='mytable';uid='sa';pwd='Sa'"; //设置连接字串
SqlConnection con = new SqlConnection(str);//默认构造函数

  上述代码与使用ConnectionString变量的方法等价,其默认的构造函数中已经为ConnectionString变量进行了初始化。
2.使用System.Data.OleDb
  ADO.NET中,具有相同功能的函数一般具有相同的参数和字段以及方法。所以,在.NET开发中,开发人员能够很快的适应新的操作。同样System.Data.OleDb也提供了Open方法以及ConnectionString字段,示例代码如下所示。
+展开
-C#
            OleDbConnection con= new OleDbConnection();//创建连接对象
            con.ConnectionString="Provider=SQLOLEDB;Data 
            Source=(local);Initial Catalog=mytable;uid=sa;pwd=sa";//初始化连接字串
            try
            {
                con.Open();//尝试打开连接
                Label1.Text = "连接成功";//提示连接成功
                con.Close();//关闭连接
            }
            catch
            {
                Label1.Text = "连接失败";//提示连接失败
            }

  同样,OleDbConnection也提供默认的构造函数来初始化连接变量,示例代码如下所示。
+展开
-C#
string str ="Provider=SQLOLEDB;Data Source=(local);Initial Catalog=mytable;uid=sa;pwd=sa";
OleDbConnection con = new OleDbConnection(str);

  上述代码通过使用构造函数初始化连接变量进行相应的ConnectionString变量的配置。值得注意的是,从上面代码可以看出,连接字串一般都通过使用用户名和密码的形式连接,这样保证了连接的安全性。另外,连接字串还可以使用Trusted_Connection=Yes来声明这是一个值得信任的连接字串,而不需要输入用户名和密码,示例代码如下所示。
+展开
-C#
string str2 ="Provider=SQLOLEDB;Data Source=(local);Initial Catalog=mytable;Trusted_Connection=Yes";
OleDbConnection con = new OleDbConnection(str2);


7.6.2 连接Access数据
  Access是一种桌面级数据库,虽然与SQL相比,Access数据库的性能和功能都并不强大,但是Access却是最常用的数据库之一。对于小型应用和小型企业来说,Access数据库也是开发中小型软件的最佳选择。
1.创建Access数据库
  Access是Office组件之一,当安装了Office后,就可以新建Access数据库,在桌面或任何文件夹中单击右键就能够创建Access数据库。创建完成后,双击数据库文件就能够打开数据库并建立表和字段,如图7-21所示。
创建Access数据库
图7-21 创建Access数据库
  同样,Access数据库也需要创建表和字段,基本方法与SQL数据库相同,但是在数据类型上,自动增长编号作为单独的数据类型而存在。开发人员能够在表窗口中创建表mytable和相应字段,如图7-22所示。
创建Access数据库的表
图7-22 创建Access数据库的表
  创建完成后可以使用System.Data.OleDb的对象进行数据库的连接和数据操作。
注意:Access数据库是一个桌面级的数据库,其数据都会存放在一个文件中而不是存放在数据库服务器中。
2.使用System.Data.OleDb
  在使用System.Data.OleDb时,只需要修改连接字串即可。在这里需要强调一点的是,Access数据库是一种桌面级的数据库,同文件类型的数据库类似,所以连接Access数据库时,必须指定数据库文件的路径,或者使用Server.MapPath来确定数据库文件的相对位置。示例代码如下所示。
+展开
-C#
            string str = "provider=Microsoft.Jet.OLEDB.4.0 ;Data Source="
            + Server.MapPath("access.mdb") + "";//使用相对路径
            OleDbConnection con = new OleDbConnection(str);//构造连接对象
            try
            {
                con.Open();//打开连接
                Label1.Text = "连接成功";//提示连接成功
                con.Close();
            }
            catch(Exception ee) //抛出异常
            {
                Label1.Text = "连接失败";
            }

  Server.MapPath能够确定文件相对于当前目录的路径,如果不使用Server.MapPath,则需要指定文件在计算机的路径,如“D:\服务器\文件夹\数据库路径”。但是这样会暴露数据库的物理路径,让程序长期处于不安全的状态。

7.6.3 打开和关闭连接
  无论是使用System.Data.SqlClient还是System.Data.OleDb创建数据库连接对象,都可以使用Open方法来打开连接。同样,也可以使用Close方法来关闭连接,示例代码如下所示。
+展开
-C#
            SqlConnection con = new SqlConnection(str);//创建连接对象
            OleDbConnection con2 = new OleDbConnection(str2);//创建连接对象
            con.Open();//打开连接
            con.Close();//关闭连接
            con2.Open();//打开连接
            con2.Close();//关闭连接

注意:如果使用了连接池,虽然显式的关闭了连接对象,其实并不会真正的关闭与数据库之间的连接,这样能够保证再次进行连接时的连接性能。

加支付宝好友偷能量挖...


评论(0)网络
阅读(89)喜欢(0)Asp.Net/C#/WCF