C#项目开发全程实录(第4版)
上QQ阅读APP看书,第一时间看更新

2.5 公共类设计

视频讲解

在开发项目中以类的形式来组织、封装一些常用的方法和事件,不仅可以提高代码的重用率,也大大方便了代码的管理。本系统中创建了BaseOperate.cs和OperateAndValidate.cs两个公共类,其中BaseOperate类主要用来访问SQL Server数据库和返回基本的ADO.NET对象,OperateAndValidate类主要用来执行控件绑定和数据验证等功能。在程序开发时,窗体只需调用相应方法即可,下面就分别对这两个类进行介绍。

2.5.1 程序文件架构

主文件架构如图2.14所示。

我方信息管理和统计分析文件架构分别如图2.15和图2.16所示。

图2.14 主文件架构图

图2.15 我方信息管理文件架构图

资料管理和用户管理文件架构分别如图2.17和图2.18所示。

系统维护和帮助文件架构分别如图2.19和图2.20所示。

图2.16 统计分析文件架构图

图2.17 资料管理文件架构图

图2.18 用户管理文件架构图

图2.19 系统维护文件架构图

图2.20 帮助文件架构图

2.5.2 BaseOperate类

BaseOperate.cs类文件中,在命名空间区域引用using System.Data.SqlClient命名空间,用来连接数据库和进行有关数据库的操作。主要代码如下:

例程01 代码位置:资源包\TM\02\CRM\BaseClass\BaseOperate.cs

1.getcon()方法

getcon()方法是返回值为SqlConnection类型的自定义方法,它主要用来建立数据库连接。实现代码如下:

例程02 代码位置:资源包\TM\02\CRM\BaseClass\BaseOperate.cs

 代码贴士

❶ 定义SQL Server 2014连接字符串,用户在使用时,需要将Data Source改为自己的SQL Server 2014服务器名。

❷ SqlConnection类用来连接数据库。

2.getcom()方法

getcom()方法为无返回值类型的自定义方法,它主要用来执行SQL语句。实现代码如下:

例程03 代码位置:资源包\TM\02\CRM\BaseClass\BaseOperate.cs

 代码贴士

❶ SqlConnection类的Open()方法用来打开数据库连接。

❷ SqlCommand类表示要对SQL Server数据库执行的一个SQL语句或存储过程。

❸ SqlCommand类的ExecuteNonQuery()方法用来执行SqlCommand命令。

❹ SqlCommand类的Dispose()方法用来释放SqlCommand对象占用的资源。

❺ SqlConnection类的Close()方法用来关闭数据库连接。

3.getds()方法

getds()方法用来执行SQL语句,并返回一个DataSet类型的数据集对象。在此方法中,首先调用本类中的getcon()方法实现数据库连接,然后使用SqllDataAdapter类对象填充DataSet数据集。实现代码如下:

例程04 代码位置:资源包\TM\02\CRM\BaseClass\BaseOperate.cs

 代码贴士

❶ SqlDataAdapter类表示用于填充DataSet和更新SQL Server数据库的一组数据命令和一个数据库连接。

❷ DataSet是数据的内存驻留表示形式,它表示一个数据集。

❸ SqlDataAdapter类的Fill()方法用来填充DataSet或DataTable数据集。

4.getread()方法

getread()方法主要用来生成一个SqlDataReader类对象,以便从数据表中读取数据。该方法中,首先,使用SqlCommand类对象执行SQL语句,然后调用SqlCommand类的ExecuteReader()方法生成SqlDataReader类的一个对象,并返回该对象。getread(string M_str_sqlstr)方法实现代码如下:

例程05 代码位置:资源包\TM\02\CRM\BaseClass\BaseOperate.cs

2.5.3 OperateAndValidate类

OperateAndValidate.cs类文件中,首先在命名空间区域添加如下命名空间:System.Data.SqlClient、System.Text.RegularExpressions和CrystalDecisions.CrystalReports.Engine,它们分别用来进行数据库操作、自定义正则表达式和进行有关的报表操作,然后生成BaseOperate类的一个对象,通过类对象调用类中的功能方法。实现代码如下:

例程06 代码位置:资源包\TM\02\CRM\BaseClass\OperateAndValidate.cs

1.cboxBind()方法

cboxBind()方法无返回值,它主要用来执行SQL语句,并将执行结果绑定到ComboBox控件中。实现代码如下:

例程07 代码位置:资源包\TM\02\CRM\BaseClass\OperateAndValidate.cs

 代码贴士

❶ 调用BaseOperate类中的getds()方法生成一个DataSet数据集对象。

❷ DataSource属性用来获取或设置ComboBox控件的数据源。

❸ DisplayMember属性用来获取或设置要为ComboBox控件显示的属性。

2.validateNum()方法

validateNum()方法无返回值,它主要用来验证输入字符串是否为数字。实现代码如下:

例程08 代码位置:资源包\TM\02\CRM\BaseClass\OperateAndValidate.cs

 代码贴士

❶ 使用Regex类的IsMatch()方法验证一个字符串是否为数字,IsMatch()方法用于指示正则表达式在输入字符串中是否找到匹配项。

3.autoNum()方法

autoNum()方法无返回值类型,该方法主要用来根据数据表中记录自动生成编号。实现代码如下:

例程09 代码位置:资源包\TM\02\CRM\BaseClass\OperateAndValidate.cs

 代码贴士

❶ DataSet对象的Tables属性用来获取包含在DataSet对象中的表的集合,Count属性用来获取DataSet数据集中记录数。

❷ Convert.ToString()方法用来将输入文本转换成字符串格式。

❸ Convert.ToString()方法用来将输入文本转换成Int类型,SubString()方法用来从字符串的指定位置截取指定长度的字符。

说明

由于篇幅有限,有关OperateAndValidate类中的其他方法请参见本书资源包。