NET开发使用ADONET中的Sql

1.概述

在这里,我们将学习的C#知识与SQLServer数据库结合起来。使用SQLServer数据库取代ListT来存储数据。

这样,我们开发的.NET应用程序,其数据是永久存储的,这才是真正的软件开发,且可以迁移到服务器上正式使用。

在.NET开发中,掌握了C#语言、ADO.NET技术和SQLServer数据库,我们就可以编写出功能多样的应用程序。

2.认识ADO.NET

ADO.NET是在.NETFramework中可以用来操作数据库。微软封装好了一套处理数据库相关操作的类和方法。

ADO.NET不仅可以操作SQLServer数据库,还可以操作Oracle、MySQL数据库等,我们只需要学会使用即可。

ADO.NET体系结构如下:

ADO.NET结构图

3.SqlConnection对象

在ADO.NET中,SqlConnection表示一个到SQLServer数据库的连接。此类是密封类,不能被继承。该类存在:System.Data.SqlClient名称空间下,使用时需要使用using引用该名称空间:

usingSystem.Data.SqlClient;

3.1.数据库连接字符串

SqlConnection类在实例化为对象时,需要传入一个数据库连接字符串为参数。

实例化SqlConnection

基本语法如下:

SqlConnectionconn=newSqlConnection(数据库连接字符串);

对于SqlConnection函数,实例化后需要传入connectionString参数作为数据库连接字符串,微软给出了多种写法,有连接本地的,也有连接服务器的。最常用的还是连接SQLServer身份验证的数据库连接。

SQLServer数据库连接字符串的基本格式如下:

DataSource=服务器名称或IP;InitialCatalog=数据库名称;UserId=用户名;Password=密码

如果连接的是Windows身份验证,则基本格式如下:

DataSource=服务器名称或IP;InitialCatalog=数据库名称;IntegratedSecurity=True

本机可以使用.表示。

integratedsecurity=true的意思是集成验证,也就是说使用Windows验证的方式去连接到数据库服务器。这样方式的好处是不需要在连接字符串中编写用户名和密码,从一定程度上说提高了安全性。

例如:连接本地的数据库,使用SQLServer身份验证连接,用户名是sa,密码是。

stringstrConn=DataSource=.;InitialCatalog=BW_TestDB;Uid=sa;Pwd=;SqlConnectionconn=newSqlConnection(strConn);

其中UserId可以省略为Uid,Password可以省略为Pwd。

3.2.Open()方法

在SqlConnection对象中,考虑到数据库连接的安全性,数据库连接字符串编写完成之后,还需要使用SqlConnection对象的open()方法打开数据库连接:

stringstrConn=DataSource=.;InitialCatalog=BW_TestDB;Uid=sa;Pwd=;SqlConnectionconn=newSqlConnection(strConn);conn.Open();

打开数据库连接之后,就可以进行与数据库的交互操作了,如:添加数据、删除数据库、修改数据等。

3.3.Close()和Dispose()方法

操作完数据库之后,还需要使用SqlConnection对象的Close()方法关闭数据连接。

stringstrConn=DataSource=.;InitialCatalog=BW_TestDB;Uid=sa;Pwd=;SqlConnectionconn=newSqlConnection(strConn);conn.Open();//数据库的相关操作conn.Close();

在SqlConnection对象中,Dispose()方法实际是和Close()做的同一件事,唯一的区别是Dispose()方法清空了数据库连接字符串connectionString,即设置为了null。

stringstrConn=DataSource=.;InitialCatalog=BW_TestDB;Uid=sa;Pwd=;SqlConnectionconn=newSqlConnection(strConn);conn.Open();//数据库的相关操作conn.Dispose();

Close()方法与Dispose()方法的本质区别如下图所示:

Close()方法的使用

在上图中,使用Close()方法关闭数据库连接后,数据库连接字符串还是存在的,但State状态已是Closed了,表示已关闭。

Dispose()方法的使用

在这里使用了Dispose()方法,不仅关闭了数据库连接,还清空了数据库连接字符串,其State状态是Closed。

从上面2张图可知,假如在关闭数据库连接后不需要连接字符串的情况下,使用Dispose()方法更安全一些。

3.4.ConnectionString属性

如果在实例化SqlConnection对象时,没有传入数据库连接字符串,还可以使用ConnectionString属性设置连接数据库的字符串。ConnectionString属性是读写属性。如下代码:

//数据库连接字符串stringstrConn=DataSource=.;InitialCatalog=BW_TestDB;Uid=sa;Pwd=;//实例化SqlConnection对象,但没有参数SqlConnectionconn=newSqlConnection();//设置数据库连接字符串conn.ConnectionString=strConn;//打开conn.Open();//关闭conn.Dispose();

3.5.ConnectionTimeout属性

ConnectionTimeout属性用于:获取在尝试建立连接时终止尝试并生成错误之前所等待的时间。

ConnectionTimeout属性是只读属性,只能用来获取值,返回int类型的超时时间,等待连接打开的时间(以秒为单位)。默认值为15秒。

inttimeOut=conn.ConnectionTimeout;

3.6.Database和DataSource属性

Database属性也是只读属性,用于获取当前数据库或连接打开后要使用的数据库的名称。

stringdbName=conn.Database;

DataSource属性是只读属性,获取要连接的SQLServer实例的名称。

stringds=conn.DataSource;

3.7.State属性

State属性是只读属性,指示最近在连接上执行网络操作时,用于判断SqlConnection对象的连接状态。State属性返回的类型是System.Data.ConnectionState。

State状态

在开发.NET应用程序之前,都会先安装好SQLServer数据库,并确定好数据库服务器名称、数据库名称、用户名和密码等。

然后在C#代码中实例化ADO.NET的SqlConnection对象,并传入数据库连接字符串。

可以在VisualStudio中打断点调试一下SqlConnection对象,查看是否可以连接到数据库服务器上。

接着后面就要实例化SqlCommand对象,执行传入的SQL语句,从而对SQLServer数据库进行操作。

最后记住一定要关闭数据库连接,否则可能会泄漏数据。




转载请注明:http://www.aierlanlan.com/cyrz/4500.html