(三)数据库连接——以编程方式访问数据库

1、   创建连接

SqlConnection conn = new SqlConnection();

conn.ConnectionStrings = “<connection string>”;

或者

SqlConnection conn = new SqlConnectioin(“<connection strng>”);

通常使用应用程序的配置文件(Windows和控件台应用程序是asp.configweb应用程序是web.config)。在配置文件中,连接字符串可以存储在任何位置,但有一个地方是为保存连接字符串而设计的,即<connectionStrings>元素。

Windows或控件台应用程序的配置文件例子:

<?xml version=”1.0” encoding=”utf-8”>

<configuration>

         <connectionStrings>

                   <add name=”MyConnectionString” connectionString=”

         Data Source=.\SQLEXPRESS;

         AttachDbFilename=C:\C#DataBase\FolktaleDb.mdf;

         Integrated Security=True;

         Connect Timeout=30;

         User Instance=True

/”>

                            </connectionStrings>

                   <configuration>

 

要在代码中访问这些信息,可用System.Configuration.ConfigurationManager类,该类包含在System.Configuration.dll库中。例如:

SqlConnection conn = new SqlConnection(ConfigurationManager.

ConnectionStrings[“MyConnectionString”].ConnectionString);

         下面是一个web.config的例子:

<connectionStrings>

<add name="sqlACMConnString" connectionString="

Data Source=202.193.60.223\weisql05;

Initial Catalog=ACMOJ;

Persist Security Info=True;

User ID=myUserID ; Password=myPWD;

Max Pool Size = 512;"

providerName="System.Data.SqlClient"

   />

<add name="sqlURConnString" connectionString="

Data Source=202.193.60.223\weisql05;

Initial Catalog=UserRights;

Persist Security Info=True;

User ID=myUserID ; Password=myPWD;

Max Pool Size = 512;"

providerName="System.Data.SqlClient"

 />

</connectionStrings>

 

2、   连接状态

数据库连接消耗资源,因此应只在代码使用数据库时才打开,否则应用程序可能引起内存泄漏,也可能阻止其他应用程序访问数据库。连接状态可以通过SqlConnection.State属性来判断。

使用SqlConnection.Open()打开连接,使用完连接时可用SqlConnection.Close()方法关闭它。注意:连接不会自动关闭,必须手工关闭。

另外,可以通过数据阅读器关闭连接,或使用using 块以便自动关闭连接:

Using (SqlConnection conn=new SqlConnection(

Configurationmanager.ConnectionStrings[“MyConnectionstring”].ConnectionString))

{

         conn.Open();

        

}

另一个常用方法是使用try…catch…finally结构来关闭连接:

Try

{

         conn.Open () ;

}

catch( Exception ex )

{

         //Handle exception.

}

Finally

{

         conn.Close();

}

 

3、   连接池

一种数据库连接的缓冲机制。提供程序维护很多与数据库的连接,当代码请求时可以使用这些连接。代码关闭连接时,连接池中的真正连接并不关闭,该连接只是被释放,并保持打开状态,供随后的代码使用。SQL Server 提供程序默认启用连接池,一个连接池最多支持100个并发连接。

通过修改连接字符串或以编程方式对提供程序进行操作,可以控制连接池。

posted @ 2009-07-04 15:13  烈火★寒冰  阅读(1421)  评论(0编辑  收藏  举报