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。