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

3.4 公共类设计

视频讲解

项目开发过程中,通常会以类的形式来组织、封装一些常用的方法和事件,这样做不仅可以提高代码的重用率,也大大方便了代码的管理。在本系统中,主要建立了两个公共类,即DBConnection类和DBOperate类。DBConnection类主要用于连接数据库;DBOperate类中则定义了一些操作数据库的公共方法,分别用于实现各种功能。下面将详细介绍这两个类。

3.4.1 DBConnection公共类

DBConnection类是一个数据库连接类,此类主要用于连接SQL Server 2014数据库,在连接数据库时,只需调用此类中的MyConnection()方法即可,其实现代码如下:

例程01 代码位置:资源包\TM\03\PMS\PMS\PMSClass\DBConnection.cs

 代码贴士

❶ MyConnection():该方法是一个公共的静态方法,此方法用于返回数据库连接对象。

MyConnection()方法是用static定义的静态方法,其功能是建立与数据库的连接,然后通过SqlConnection对象的Open()方法打开与数据库的连接,并返回SqlConnection对象的信息。代码如下:

例程02 代码位置:资源包\TM\03\PMS\PMS\PMSClass\DBConnection.cs

 代码贴士

❶ “@"server=.\EXPRESS;database=db_PMS;uid=sa;pwd="”为数据库连接字符串,当创建SqlConnection对象时可以使用此字符串作为构造方法的参数。

3.4.2 DBOperate公共类

DBOperate类中建立了多个方法用于执行不同的SQL语句,下面对该类中的方法进行详细讲解。

1.OperateData()方法

OperateData()方法用于对数据库执行SQL语句。在开发程序时,可能会反复地执行SQL语句,为了增加代码的重复使用,在公共类中建立了一个OperateData()方法,其参数是SQL语句,调用时,只需将要执行的SQL语句传递给此方法执行即可。代码如下:

例程03 代码位置:资源包\TM\03\PMS\PMS\PMSClass\DBOperate.cs

 代码贴士

❶ ExecuteNonQuery():该方法用于执行SQL语句,并返回受影响的记录的行数。

2.BindDataGridView()方法

BindDataGridView()方法用于将数据库中的数据绑定到DataGridView控件。代码如下:

例程04 代码位置:资源包\TM\03\PMS\PMS\PMSClass\DBOperate.cs

 代码贴士

❶ Fill():该方法用于将查询到的数据库中的记录填充到数据集DataSet中。

3.HumanNum()方法

HumanNum()方法用于查找指定数据表的返回数。例如,根据指定的用户名和密码作为检索条件,检查用户名和密码是否正确,便可以通过调用HumanNum()方法实现。代码如下:

例程05 代码位置:资源包\TM\03\PMS\PMS\PMSClass\DBOperate.cs

 代码贴士

❶ ExecuteScalar():SqlCommand对象的ExecuteScalar()方法用于执行查询,并返回查询所返回的结果集中第1行第1列的信息。

4.Read_Image()方法

Read_Image()方法用于在PictureBox控件中显示选择的图片,代码如下:

例程06 代码位置:资源包\TM\03\PMS\PMS\PMSClass\DBOperate.cs

 代码贴士

❶ Filter:OpenFileDialog组件的Filter属性,用于筛选打开文件的格式。

❷ ShowDialog():OpenFileDialog组件的ShowDialog()方法用于弹出打开文件对话框,选择打开的文件。

❸ Image:PictureBox控件的Image属性,用于设置PictureBox控件显示的图像。

❹ Show():MessageBox类的Show()静态方法,用于弹出消息对话框。

5.SaveImage()方法

SaveImage()方法用于将图片以二进制存入数据库中,代码如下:

例程07 代码位置:资源包\TM\03\PMS\PMS\PMSClass\DBOperate.cs

 代码贴士

❶ FileStream:通过FileStream对象的多个方法,可以方便地读取文件内容和向文件中写入内容。

❷ BinaryReader:通过BinaryReader对象的ReadBytes()方法,可以读取流中的数据。

❸ Append:使用StringBuilder对象的Append()方法用于向字符串中附加信息。

❹ Close():SqlConnection对象的Close()方法用于关闭数据库连接。

注意

适当地使用StringBuilder对象操作字符串,可以减少字符串操作中产生的垃圾对象,从而减轻GC垃圾收集器的压力。

6.Get_Image()方法

Get_Image()方法用于将图片从数据库中取出,并显示在PictureBox控件中,代码如下:

例程08 代码位置:资源包\TM\03\PMS\PMS\PMSClass\DBOperate.cs

 代码贴士

❶ ExecuteReader():SqlCommand对象的ExecuteReader()方法用于得到数据读取器对象。

❷ Read():数据读取器的Read()方法用于读取数据。

注意

当使用SqlConnection对象的Open()方法打开数据库,并进行相关操作后,不要忘记调用SqlConnection对象的Close()方法,释放数据库资源。

7.GetTable()方法

GetTable()方法用于根据指定SQL查询语句,返回相应的DataSet对象,代码如下:

例程09 代码位置:资源包\TM\03\PMS\PMS\PMSClass\DBOperate.cs

8.BindDropdownlist()方法

BindDropdownlist()方法用于对指定的ComboBox控件进行数据绑定,代码如下:

例程10 代码位置:资源包\TM\03\PMS\PMS\PMSClass\DBOperate.cs

 代码贴士

❶ Add():ComboBox控件Items集合的Add()方法,用于向控件中添加数据项。

9.GYSD()方法

GYSD()方法用于计算不同工资应该缴纳的个人所得税,代码如下:

例程11 代码位置:资源包\TM\03\PMS\PMS\PMSClass\DBOperate.cs