C#课程设计图书馆信息管理系统 下载本文

图3.4 图书入库界面

在窗体的左边的分组框中添加标签和文本框,用来接收管理员输入的图书信息,以便保存到数据库中。在右边的分组框中添加DataGridView控件,可以显示数据库中的图书信息,新添加的图书信息也可以显示出来。

3.5 图书更新界面

图书更新界面用于方便管理员管理图书信息,实现图书信息修改、删除等操作。界面设计如图3.5所示

图 3.5 图书更新界面

管理员可以在DataGridView控件中直接修改数据,也可以通过右边的分组框实现图书信息的修改。

8

3.6 图书借阅界面

根据图书馆中已有的图书信息,用户可以通过图书证号实现借阅。界面设计如图3.6所示

图 3.6 图书借阅界面

4通用类的生成

本系统的主要操作都需要与数据库发生交互,为了提高代码的重用性和规范性,把与数据库交互的功能单独放在一个类中,在该类中实现数据库的增加、删除、修改、查询等通用功能。

4.1 连接数据库

(1)定义数据库连接字符串,代码如下:

Private static string ConnectString = \(local)\\\\sqlexpress;DataBase=BookManage.mdf\(2)创建Connection对象,代码如下:

SqlConnection con = new SqlConnection(ConnectString); (3)打开连接,代码如下:

con.Open();

(4)关闭连接,代码如下:

con.Close();

Source=

9

4.2 操作数据库中的数据

using System;

using System.Collections.Generic; using System.Linq; using System.Text; using System.Data;

using System.Data.SqlClient; namespace BookManage { class DataAccess

{ private static string ConnectString = @\

=A20\\SQLEXPRESS;AttachDbFilename=F:\\BookManage\\data\\BookManage.mdf;Integrated Security=False\;//数据库连接字符串 ///

/// 根据表名获取数据集的表 ///

///

public static DataTable GetDataSetByTableName(string table)

{using (SqlConnection con = new SqlConnection(ConnectString))//创建数据库连接对象

{ string sql = \ + table + \;//查询sql语句

try

{SqlDataAdapter adapter = new SqlDataAdapter(sql, con);//创建适配器对象

DataSet ds = new DataSet();//创建数据集对象 adapter.Fill(ds, \);//填充数据集 return ds.Tables[0];//返回数据表 } catch (SqlException ex)

{ throw new Exception(ex.Message); ;}}} public static DataSet GetDataSetBySql(string sql) { using (SqlConnection con = new SqlConnection(ConnectString))//创建数据库连接对象

{ SqlDataAdapter adapter = new SqlDataAdapter(sql,con);//创建适配器对象

DataSet ds = new DataSet();//创建数据集对象 try

{ adapter.Fill(ds);//填充数据集 return ds;//返回数据集 } catch (SqlException ex)

{throw new Exception(ex.Message)} }

public static SqlDataReader GetDataReaderByID(int id) {using (SqlConnection con = new SqlConnection(ConnectString))

10

{string sql = \ + id;//sql语句

try

{SqlCommand comm = new SqlCommand(sql, con);//创建Command对象

con.Open();//打开连接

SqlDataReader reader = comm.ExecuteReader();//创建DataReader对象

reader.Read();//读取数据

return reader;//返回DataReader} catch (SqlException ex)

{throw new Exception(ex.Message); }}

public static bool UpdateDataTable(string sql)

{using (SqlConnection con = new SqlConnection(ConnectString)) { try

{con.Open();//打开连接

SqlCommand comm = new SqlCommand(sql, con);//创建Command对象

if (comm.ExecuteNonQuery() > 0) //执行更新 {return true;} else

{return false;}}

catch (SqlException ex)

{throw new Exception(ex.Message);}}}

public static void UpdateDataSet(DataSet ds,string sql) { using (SqlConnection con = new SqlConnection(ConnectString)) {try

{ SqlDataAdapter adapter = new SqlDataAdapter(sql, con);//创建适配器

SqlCommandBuilder builder = new SqlCommandBuilder(adapter);//根据适配器自动生成表单

adapter.Update(ds, \);//更新数据库} catch (SqlException ex)

{ throw new Exception(ex.Message);}}}}}

4.3 用户登录代码、图书查询代码等的实现

以上代码的实现都是C#语言和Sql语言的使用,此处由于代码篇幅较长,此处不再说明,祥见附录。

11