ASP.NET2.0 SQL Server数据库连接详解(2)


  程序代码说明:在上述语法范例的程序代码中,我们设置了一个针对Sql Server数据库的连接字符串。其中server表示运行Sql Server的计算机 名,由于在本书中,ASP.NET程序和数据库系统是位于同一台计算机的,所以我们可以用localhost取代当前的计算机名。database表示所使用的数据库名,这里设置为Sql Server自带的一个示例数据库--Northwind。由于我们希望采用集成的Windows验证方式,所以设置 integrated security为SSPI即可。

  Sql Server 2005中的Windows身份验证模式如下:

ASP.NET2.0 SQL Server数据库连接详解

  注意:在使用集成的Windows验证方式时,并不需要我们输入用户名和口令,而是把登录Windows时输入的用户名和口令传递到Sql Server。然后Sql Server检查用户清单,检查其是否具有访问数据库的权限。而且数据库连接字符串是不区分大小写的。

  采用Sql Server身份验证的语法范例

string connectionString = "server=localhost;database=Northwind;uid=sa;pwd=sa";  


  程序代码说明:在上述语法范例的程序代码中,采用了使用已知的用户名和密码验证进行数据库的登录。uid为指定的数据库用户名,pwd为指定的用户口令。为了安全起见,一般不要在代码中包括用户名和口令,你可以采用前面的集成的Windows验证方式或者对Web .Config文件中的连接字符串加密的方式提高程序的安全性。

  Sql Server 2005中的Sql Server身份验证模式如下:

ASP.NET2.0 SQL Server数据库连接详解

  如果你使用其他的数据提供者的话,所产生的连接字符串也具有相类似的形式。例如我们希望以OLE DB的方式连接到一个Oracle数据库,其连接字符串如下:

string connectionString = "data source=localhost;initial catalog=Sales;
use id=sa;password=;provider=MSDAORA";
 


  程序代码说明:在上述语法范例的程序代码中,通过专门针对Oracle数据库的OLE DB提供程序,实现数据库的连接。data source 表示运行Oracle数据库的计算机名,initial catalog表示所使用的数据库名。provider表示使用的OLE DB提供程序为MSDAORA。

  Access数据库的连接字符串的形式如下:

string connectionString = "provider=Microsoft.Jet.OLEDB.4.0;
@”data source=c:\DataSource\Northwind.mdb”;
 


  程序代码说明:在上述语法范例的程序代码中,通过专门针对Access数据库的OLE DB提供程序,实现数据库的连接。这使用的的OLE DB提供程序为Microsoft.Jet.OLEDB.4.0,并且数据库存放在c:\DataSource目录下,其数据库文件为 Northwind.mdb。

  现在我们就可以将数据库连接字符串传人SqlConnection()构造函数,例如:

string connectionString = "server=localhost;database=Northwind;uid=sa;pwd=sa";
SqlConnection mySqlConnection = new SqlConnection(connectionString);
 


  或者写成

SqlConnection mySqlConnection =new SqlConnection(
"server=localhost;database=Northwind;uid=sa;pwd=sa");
 


  在前面的范例中,通过使用“new“关键字生成了一个新的SqlConnection对象。因此我们也可以设置该对象的 ConnectionString属性,为其指定一个数据库连接字符串。这和将数据库连接字符串传人SqlConnection()构造函数的功能是一样的。

SqlConnection mySqlConnection = new SqlConnection();
mySqlConnection.ConnectionString = "server=localhost;database=Northwind;uid=sa;pwd=sa";
 


  注意:只能在关闭Connection对象时设置ConnectionString属性。

  打开和关闭数据库连接

  生成Connection对象并将其设置ConnectionString属性设置为数据库连接的相应细节之后,就可以打开数据库连接。为此可以调用Connection对象的Open()方法。其方法如下:

mySqlConnection.Open();  


  完成数据库的连接之后,我们可以调用Connection对象的Close()方法关闭数据库连接。例如:

mySqlConnection.Close();  


  下面是一个显示如何用SqlConnection对象连接Sql Server Northwind数据库的实例程序,并且显示该SqlConnection对象的一些属性。

  范例程序代码如下:

01 public partial class _Default : System.Web.UI.Page
02 {
03 protected void Page_Load(object sender, EventArgs e)
04 {
05 //建立数据库连接字符串
06 string connectionString = "server=localhost;database=Northwind;
07 integrated security=SSPI";
08 //将连接字符串传入SqlConnection对象的构造函数中
09 SqlConnection mySqlConnection = new SqlConnection(connectionString);
10 try
11 {
12 //打开连接
13 mySqlConnection.Open();
14 //利用label控件显示mySqlConnection对象的ConnectionString属性
15 lblInfo.Text = "<b>mySqlConnection对象的ConnectionString属性为:<b>" +
16 mySqlConnection.ConnectionString + "<br>";
17 lblInfo.Text += "<b>mySqlConnection对象的ConnectionTimeout属性为<b>" +
18 mySqlConnection.ConnectionTimeout + "<br>";
19 lblInfo.Text += "<b>mySqlConnection对象的Database属性为<b>" +
20 mySqlConnection.Database + "<br>";
21 lblInfo.Text += "<b>mySqlConnection对象的DataSource属性为<b>" +
22 mySqlConnection.DataSource + "<br>";
23 lblInfo.Text += "<b>mySqlConnection对象的PacketSize属性为<b>" +
24 mySqlConnection.PacketSize + "<br>";
25 lblInfo.Text += "<b>mySqlConnection对象的ServerVersion属性为<b>" +
26 mySqlConnection.ServerVersion + "<br>";
27 lblInfo.Text += "<b>mySqlConnection对象的当前状态为<b>" +
28 mySqlConnection.State + "<br>";
29 }
30 catch (Exception err)
31 {
32 lblInfo.Text = "读取数据库出错";
33 lblInfo.Text += err.Message;
34 }
35 finally
36 {
37 //关闭与数据库的连接
38 mySqlConnection.Close();
39 lblInfo.Text += "<br><b>关闭连接后的mySqlConnection对象的状态为:</b>";
40 lblInfo.Text += mySqlConnection.State.ToString();
41 }
42 }
43 }
 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjfyff.html