2.4 公共类设计

开发项目中以类的形式来组织、封装一些常用的方法和事件,不仅可以提高代码的重用率,也大大方便了代码的管理。

2.4.1 Web.Config文件配置

为了使应用程序方便移植,为版本控制提供更好的支持,需要在应用程序配置文件(即Web.Config文件)中设置数据库连接信息。连接数据库代码如下:

注意

应当使UId和password与本机上的SQL Server 2014的登录名和密码相对应。

2.4.2 数据库操作类的编写

在51电子商城网站中共建了5个公共类,具体如下。

 CommonClass:用于管理在项目中用到的公共方法,如弹出提示框、随机验证码等。

 DBClass:用于管理在项目中对数据库的各种操作,如连接数据库、获取数据集DataSet等。

 GoodsClass:用于管理对商品信息的各种操作。

 OrderClass:用于管理对购物订单信息的各种操作。

 UserClass:用于管理对用户信息的各种操作。

下面主要介绍CommonClass类和DBClass类的创建过程,其他类参见本书附带的资源包。

1. 类的创建

在创建类时,用户可以直接在该项目中找到App_Code文件夹,然后单击鼠标右键,在弹出的快捷菜单中选择“添加新项”命令,在弹出的“添加新项”对话框中选择“类”选项,并为其命名(以创建DBClass为例),单击“添加”按钮即可创建一个新类,如图2.22所示。

图2.22 “添加新项”对话框

注意

在ASP.NET中,App_Code文件夹专门用来存放一些应用于全局的代码(如公共类),如果项目中没有该文件夹,可以在项目上单击鼠标右键,在弹出的快捷菜单中选择“添加ASP.NET文件夹”→App_Code命令,添加一个App_Code文件夹。

2. CommonClass类

CommonClass类用于管理在项目中用到的公共方法,主要包括MessageBox方法、MessageBoxPage方法和RandomNum方法,下面分别介绍。

(1)MessageBox(string TxtMessage)方法

MessageBox方法用于在客户端弹出对话框,提示用户执行某种操作。代码如下:

例程01 代码位置:资源包\TM\02\B2C\B2C\App_Code\CommonClass.cs

(2)MessageBoxPage(string TxtMessage)方法

MessageBoxPage方法用于在客户端弹出对话框,提示用户执行某种操作或已完成了某种操作,并刷新页面。代码如下:

例程02 代码位置:资源包\TM\02\B2C\B2C\App_Code\CommonClass.cs

(3)RandomNum(int n)方法

RandomNum方法用来生成由英文字母和数字组合成4位的验证码,常用于登录界面,用于防止用户利用注册机自动注册、登录或灌水。代码如下:

例程03 代码位置:资源包\TM\02\B2C\B2C\App_Code\CommonClass.cs

3. DBClass类

DBClass类用于管理在项目中对数据库的各种操作,主要包括GetConnection方法、ExecNonQuery方法、ExecScalar方法和GetDataSet方法,下面分别详细介绍。

(1)GetConnection(string sString, int nLeng)方法

GetConnection方法用来创建与数据库的连接,并返回SqlConnection类对象。代码如下:

例程04 代码位置:资源包\TM\02\B2C\B2C\App_Code\DBClass.cs

(2)ExecNonQuery(SqlCommand myCmd)方法

ExecNonQuery方法用来执行SQL语句,并返回受影响的行数。当用户对数据库进行添加、修改或删除操作时,可以调用该方法。代码如下:

例程05 代码位置:资源包\TM\02\B2C\B2C\App_Code\DBClass.cs

(3)ExecScalar(SqlCommand myCmd)方法

ExecScalar方法用来返回查询结果中的第一行第一列值。当用户从数据库中检索数据,并获取查询结果中的第一行第一列的值时,可以调用该方法。代码如下:

例程06 代码位置:资源包\TM\02\B2C\B2C\App_Code\DBClass.cs

(4)GetDataSet(SqlCommand myCmd, string TableName)方法

GetDataSet方法主要用来从数据库中检索数据,并将查询的结果使用SqlDataAdapter对象的Fill方法填充到DataSet数据集,然后返回该数据集的表的集合。代码如下:

例程07 代码位置:资源包\TM\02\B2C\B2C\App_Code\DBClass.cs

注意

在编写DBClass类之前,需要引入命名空间System.Data.SqlClient,以便使用该命名空间中包含的类。引用该命名空间的代码为:using System.Data.SqlClient。