中北大学数据库及软件工程课程设计说明书学生XX:学号:学院: 电子与计算机科学技术学院专业:题目: 电脑配件库存管理系统成绩指导教师2012 年月日1. 引言(大标题黑体小四号字)1.1 课题背景随着电子技术的不断发展,电子产品的规模不断扩大,计算机数量及其用户量的急剧增加,有关电脑配件的各种商家也随之展开,电脑配件管理系统应运而生了,它可用来管理电脑配件信息与提高系统管理工作的效率。
电脑配件管理系统把Microsoft Visual Studio 2010(前台开发)与MSSQLserver2008数据库(后台管理)有机地结合,并运用相关技术,完成电脑配件爱你的规X管理、科学统计和快速查询,从而可大大减少该管理上的工作量。
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。
合理的数据库结构设计可以提高数据库存储的效率,保证数据的完整性和一致性。
同时,合理的数据结构也将有利于程序的顺利实现。
1.2 系统开发关键技术介绍本系统采用的是Microsoft Visual Studio 2010开发工具作为开发系统程序,采用MSSQLserver2008数据库访问技术完成对数据库信息的规X管理和统计查询。
MSSQLserver2008使用更加简单灵活的对象模型,适用于各种程序设计语言。
MSSQLserver2008提供执行以下操作方式:(1)连接到数据源。
(2)指定访问数据源的命令,可以在命令中指定参数。
(3)执行命令,例如一个SELECT语句。
(4)在适当情况下,可以把缓存行的更改内容写回数据库中,更新数据源。
提供常规方法检测错误,错误通常由建立连接或执行命令造成,涉及到 SQL的error对象。
2.需求分析2.1.1目的本次课程设计是网络工程专业核心实践教学环节之一,是对《数据库原理》和《软件工程》两门课程知识的综合运用。
通过设计,巩固所学的理论基础,加深对数据库原理和软件工程理论知识的理解,掌握软件系统设计的全过程及技术与方法,培养编制软件文档及开发应用系统的能力,提高独立分析问题、解决问题的能力,锻炼和加强动手能力。
2.1.2X围以电脑配件批发公司为背景,开发电脑配件库存管理系统。
配件种类至少包括五种,每种配件包括至少两家供货商。
(功能及相关数据可以通过调研获取,也可以进行合理假设)。
2.1.3定义、缩写词、略语B/S :即浏览器/服务器结构,基于浏览器的使用。
用户:用户分入库管理员、出库管理员和系统管理员,角色不同,所使用的功能不同。
:Internet 上提供Web服务的计算机。
该计算机的IP绑定了域名,在浏览器输入域名就可以访问该计算机的web资源2.1.4参考资料[1] 齐志昌,谭庆平,宁洪.软件工程,:高等教育.2002[2] X海藩.软件工程导论.:清华大学.2003[3] 程成,陈霞.软件工程(原书第6版).:机械工业.2003[4] 王珊,萨师煊.数据库系统概论(第四版).:高等教育出版.2006[5] 陈志泊,李冬梅,王春玲.数据库原理及应用教程.:人民邮电.2003[6] X阿奇.SQL Server实用教程.:电子工业.2003[7] 何玉洁.数据库原理与应用.:机械工业.20072.2.1项目概述本项目所开发的电脑配件库存管理系统完成学校对入库员的选课信息的统计与管理,减少数据漏掉的情况,同时也节约人力、物力和财力。
告别以往的人工统计。
本项目开发的软件采用 B/S结构,方便入库管理员、出库管理员、系统管理员使用,入库管理员可以再线查看可选配件信息、再线入库、信息修改、入库单查看,出库管理员可以再线出库、出库单查看,管理员可以对整个系统进行管理(包括系统管理、用户管理、库存管理).。
2.2.2产品描述由于本系统的数据还算不上大型的。
所以数据库服务器与web服务器共用同一台计算机。
系统中的用户信息、系统信息和库存信息都放在数据库中。
系统用例图下图所示由于本系统的数据还算不上大型的。
所以数据库服务器与web服务器共用同一台计算机。
系统中的用户信息、系统信息和库存信息都放在数据库中。
(1) 入库:入库管理员的操作。
Step 1:成功登陆Step 2:查看所有入库详单Step 3:进行入库操作(2) 出库:出库管理员的操作Step 1:用户登陆Step 2:进行出库操作Step 3:查看相应信息(3) 管理:系统管理员可以使用管理操作2.2.3产品功能系统功能模块2.2.4用户特点本项目所开发的系统用户有三类,入库员、出库员和系统管理员。
当有配件入库时,入库员就可以登陆电脑配件管理系统进行管理。
对入库员来说,只要有一个能上网的就行可以在浏览器登陆了。
当有配件出库时,出库员就可以登陆电脑配件管理系统进行管理。
当管理员登陆时,可以查看所有的入库、出库情况等信息。
2.2.5一般约束此系统必须满足以后限制:(1)系统中所有账户能够供用户随时使用,能够随时使用相应功能。
(2)该系统必须确保所有数据安全,以免损失。
所有用户都要登陆才能访问,每个用户只能使用所属角色的权限,必要时限定访问次数。
(3)界面友好,操作简单。
(4)软件系统开放性好,结构灵活,可扩充,方便维护。
(5)安全可靠。
2.2.6假设和依据(1)假设入库员不在仓库,照样可以入库。
只要有联网的电脑且有浏览器就行。
(2)假设用户忘记密码,可与管理员联系。
2.3.1功能需求描述数据库关系图如下图入库单助手类:包括入库单的信息和入库单可以执行的操作。
出库助手单类:包括出库单的信息和出库单可以执行的操作。
用户助手类:包括用户的信息和用户可以执行的操作。
供货商助手类:包括供货商的信息和供货商可以执行的操作。
配件助手类:包括配件的信息和配件可以执行的操作。
配件种类助手类:包括配件种类的信息和配件种类可以执行的操作。
库存助手类:包括库存的信息和库存可以执行的操作。
2.3.2类的详细说明入库单助手类:方法:增加入库单查看入库单出库单助手类方法增加出库单查看出库单用户助手类方法:增加用户删除用户修改用户查询用户供货商助手类方法:增加供货商删除供货商修改供货商查询供货商方法:增加配件删除配件修改配件查询配件配件种类助手类方法:增加配件种类删除配件种类修改配件种类查询配件种类库存助手类方法:增加库存修改库存查询库存2.3.3 其它需求描述性能要求(1)对服务器的要求,必须保证系统稳定的运行。
(2)对客户端,在现在使用的电脑中,联网了就行。
要求不高。
(3)本地系统,使用功能时,在网速好的情况下,系统响应时间为10秒以内,设计约束数据库: SQL2008服务器操作系统:windows7开发语言:C# .NET服务器硬件:配置稍好就行开发方式:个人开发。
进度要求2012年5月 28日 ~ 5 月31日进行需求分析;2012年6月 01日 ~ 6月 07日概要设计和详细设计;2012年6月 08日 ~ 6月 14日编程;2012年6月15 日 ~ 6 月21日测试、撰写课程设计说明书;2012年6月22 日验收、成绩考核。
3.3.4 交付要求该项目完成后,需向用户提交以下信息:⑴软件需求规格说明书,电子版和纸质版。
⑵软件设计规格说明书,电子版和纸质版。
(3)可运行的软件系统。
(4)部分或者全部C#源码。
2.3.4 用户界面界面对于用户来说至关重要,既是用户对软件评介的根据,也是用户最终使用的。
所以界面设计得怎么样,对整个系统的成功与否有着密切的联系。
当然,也许界面设计得好不会让其性能更好,但是设计得不好却只会让它更差。
界面设计原则:一致性操作步骤少随时提示用户系统正在进行哪些操作要有撤销操作减少用户记忆的东西3. 概要设计系统数据流图:系统功能机构图管理员登录系统管理员登录系统供应商管理配件管理配件种类管理订单管理系统管理增加查询进货订单查询出货订单用户管理系统备份系 统 还原管理增加管理增加管理库存管理入库出库查看电脑配件信息管理系统密码登陆界面入库员登录系统出库管理员系统E-R图用户E-R图数据库表单进货单表库存表出货单表配件类别表供应商表用户表4. 详细设计数据库助手类public class SqlClient{private SqlConnection con; //创建连接对象private string ConStr = "Data Source=(local);Initial Catalog=puterPartsManagement;Integrated Security=True";#region 构造函数/// <summary>此构造函数什么都不做,数据库的打开与关闭都被各个成员函数封装了////// </summary>public SqlClient(){}#endregion#region 打开关闭数据库/// <summary>打开数据库并返回数据库连接对象(此对象可用可不用)////// </summary>public SqlConnection SqlClientOpenCon(){// 打开数据库连接if (con == null){con = new SqlConnection(ConStr);}if (con.State == System.Data.ConnectionState.Closed)con.Open();return con;}/// <summary>关闭数据库连接////// </summary>public void SqlClientCloseCon(){if ((con != null) && (con.State != System.Data.ConnectionState.Closed)){con.Close();con = null;}}#endregion#region 查询信息/// <summary>仅SQL语句返回符合查询条件的记录条数////// </summary>/// <param name="strsql">只接受类似[select count(*) from tb_Admin where 条件]的指令</param>/// <returns></returns>public int SqlClientSelectCount(string strsql){int intResult = 0;try{SqlClientOpenCon();Sqlmand cmd = new Sqlmand(strsql, con);intResult = Convert.ToInt32(cmd.ExecuteScalar());}catch (Exception ex){throw ex;}finally{SqlClientCloseCon();}return intResult;}/// <summary>仅SQL语句返回SqlDataReader,操作完毕后必须主动调用相应函数关闭数据库/// 返回SqlDataReader,操作完毕后必须主动调用相应函数关闭数据库/// *关于SqlDataReader:不管SqlDataReader是否读取到了可用数据的行,但是一定读取到了包含列名的行;/// HasRows指示是否包含可用数据的行;GetName得到列名;FieldCount得到列数*/// </summary>/// <param name="strsql">SELECT sql查询指令</param>/// <returns></returns>public SqlDataReader SqlClientDataReader(string strsql) {SqlDataReader oleRed = null;try{SqlClientOpenCon();Sqlmand cmd = new Sqlmand(strsql, con);oleRed = cmd.ExecuteReader();}catch (Exception ex){throw ex;}return oleRed;}/// <summary>仅SQL语句返回DataTable////// </summary>/// <param name="strsql">SELECT sql查询指令</param>/// <returns>DataTable</returns>public DataTable SqlClientDataTable(string strsql){DataTable datatable = new DataTable();SqlDataAdapter da = new SqlDataAdapter();try{SqlClientOpenCon();Sqlmand cmd = new Sqlmand(strsql, con);cmd.mandType = mandType.Text;da.Selectmand = cmd;da.Fill(datatable);}catch (Exception ex){throw ex;}finally{SqlClientCloseCon();}return datatable;}/// <summary>仅SQL语句返回DataSet////// </summary>/// <param name="sqlstr">SELECT sql查询指令</param> /// <returns>DataSet</returns>public DataSet SqlClientDataSet(string strsql){DataSet ds = new DataSet();SqlDataAdapter da = new SqlDataAdapter();try{SqlClientOpenCon();Sqlmand cmd = new Sqlmand(strsql, con);cmd.mandType = mandType.Text;da.Selectmand = cmd;da.Fill(ds);}catch (Exception ex){throw ex;}finally{SqlClientCloseCon();}return ds;}/// <summary>执行不带参数的(查询SQL语句或存储过程)////// </summary>/// <param name="cmdText">查询SQL语句或存储过程</param>/// <param name="ct">mandType类型</param>/// <returns></returns>public DataTable SqlClientQuery(string cmdText, mandType ct) {DataTable dt = new DataTable();try{SqlClientOpenCon();Sqlmand cmd = new Sqlmand(cmdText, con);cmd.mandType = ct;using (SqlDataReader sdr = cmd.ExecuteReader(mandBehavior.CloseConnection)){dt.Load(sdr);}}catch (Exception ex){throw ex;}finally{SqlClientCloseCon();}return dt;}/// <summary>执行带参数的(查询SQL语句或存储过程)////// 构造SqlParameter[] paras实例/// string strSql="select * from login where sys_user=nchar and sys_num=int";/// SqlParameter[] paras =new SqlParameter[2];/// paras[0] = new SqlParameter("nchar", SqlDbType.NChar);/// paras[0].Value = "mynchar";/// paras[1] = new SqlParameter("int", SqlDbType.Int);/// paras[1].Value = 8; //myint/// </summary>/// <param name="cmdText">查询SQL语句或存储过程</param>/// <param name="paras">SqlParameter[] paras =new SqlParameter[2];数组</param>/// <param name="ct"></param>/// <returns></returns>public DataTable SqlClientQuery(string cmdText, SqlParameter[] paras, mandType ct){DataTable dt = new DataTable();try{SqlClientOpenCon();Sqlmand cmd = new Sqlmand(cmdText, con);cmd.mandType = ct;cmd.Parameters.AddRange(paras);using (SqlDataReader sdr = cmd.ExecuteReader(mandBehavior.CloseConnection)){dt.Load(sdr);}}catch (Exception ex){throw ex;}finally{SqlClientCloseCon();}return dt;}#endregion#region 增删改信息/// <summary>执行不带参数的(增删改SQL语句或存储过程)////// </summary>/// <param name="cmdText">增删改SQL语句或存储过程</param> /// <param name="ct">mandType类型</param>/// <returns>返回受影响的行数</returns>public int SqlClientOpt(string cmdText,mandType ct){int intResult = 0;try{SqlClientOpenCon();Sqlmand cmd = new Sqlmand(cmdText, con);cmd.mandType = ct;intResult = cmd.ExecuteNonQuery();}catch (Exception ex){throw ex;}finally{SqlClientCloseCon();}return intResult;}/// <summary>执行带参数的(增删改SQL语句或存储过程)////// 构造SqlParameter[] paras实例/// string strSql="insert into login (sys_user,sys_num) values (nchar,int)";/// SqlParameter[] paras =new SqlParameter[2];/// paras[0] = new SqlParameter("nchar", SqlDbType.NChar);/// paras[0].Value = "mynchar";/// paras[1] = new SqlParameter("int", SqlDbType.Int);/// paras[1].Value = 8; //myint/// </summary>/// <param name="cmdText">增删改SQL语句或存储过程</param>/// <param name="paras">SqlParameter[] paras =new SqlParameter[2];数组</param>/// <param name="ct"></param>/// <returns>返回受影响的行数</returns>public int SqlClientOpt(string cmdText, SqlParameter[] paras, mandType ct) {int intResult = 0;try{SqlClientOpenCon();Sqlmand cmd = new Sqlmand(cmdText, con);cmd.mandType = ct;/*foreach (SqlParameter p in paras){cmd.Parameters.Add(p);}*/cmd.Parameters.AddRange(paras);intResult = cmd.ExecuteNonQuery(); }catch (Exception ex){throw ex;}finally{SqlClientCloseCon();}return intResult;}#endregion}//endSqlClientClass用户助手类/// <summary>///UserHelper 的摘要说明/// </summary>public class UserHelper{public UserHelper(){////TODO: 在此处添加构造函数逻辑//}SqlClient sqlclient = new SqlClient();/// <summary>查询用户表////// </summary>/// <returns></returns>public DataTable Selpass(){DataTable dt = new DataTable();dt = sqlclient.SqlClientQuery("SELECT * FROM dbo.Table_User", mandType.Text);return dt;}/// <summary>通过用户名查询用户表////// </summary>/// <param name="userid"></param>/// <returns></returns>public DataTable Selpass(string username){DataTable dt = new DataTable();SqlParameter[] paras = new SqlParameter[] {new SqlParameter("username",username),};dt = sqlclient.SqlClientQuery("SELECT * FROM dbo.Table_User where dbo.Table_erName = username", paras,mandType.Text);return dt;}/// <summary> 通过id查询用户表////// </summary>/// <param name="id"></param>/// <returns></returns>public DataTable SelId(string id){SqlParameter[] paras = new SqlParameter[] {new SqlParameter("id", id),};DataTable dt = new DataTable();dt = sqlclient.SqlClientQuery("SELECT * FROM dbo.Table_User where UserId = id", paras, mandType.Text);return dt;}/// <summary>增加用户////// </summary>/// <param name="name"></param>/// <param name="pass"></param>/// <param name="perm"></param>/// <returns></returns>public bool InsertUser(string name, string pass, string perm){bool r = false;int i;SqlParameter[] paras = new SqlParameter[] {new SqlParameter("name", name),new SqlParameter("pass", pass),new SqlParameter("perm",perm)};i = sqlclient.SqlClientOpt("INSERT INTO Table_User (UserName,Password,Permissions) VALUES (name,pass,perm)", paras, mandType.Text); if (i > 0){r = true;}return r;}/// <summary>删除用户////// </summary>/// <param name="id"></param>/// <returns></returns>public bool DelUser(string id){bool r = false;int i;SqlParameter[] paras = new SqlParameter[] {new SqlParameter("id", id),};i = sqlclient.SqlClientOpt("DELETE FROM Table_User WHERE UserId = id", paras, mandType.Text);if (i > 0){r = true;}return r;}/// <summary>修改用户////// </summary>/// <param name="id"></param>/// <param name="name"></param>/// <param name="pass"></param>/// <param name="perm"></param>/// <returns></returns>public bool UpdateUser(string id, string name, string pass, string perm){bool r = false;int i;SqlParameter[] paras = new SqlParameter[] {new SqlParameter("id", id),new SqlParameter("name", name),new SqlParameter("pass", pass),new SqlParameter("perm",perm)};i = sqlclient.SqlClientOpt("UPDATE Table_User SET UserName=name,Password = pass,Permissions = perm WHERE UserId = id", paras, mandType.Text);if (i > 0){r = true;}return r;}}供应商助手类public class SupplierHelper{public SupplierHelper(){////TODO: 在此处添加构造函数逻辑//}SqlClient sqlclient = new SqlClient();/// <summary>增加供应商////// </summary>/// <param name="name"></param>/// <param name="tel"></param>/// <returns></returns>public bool InsertSupplier(string name, string tel){bool r = false;int i;SqlParameter[] paras = new SqlParameter[] {new SqlParameter("name", name),new SqlParameter("tel", tel)};i = sqlclient.SqlClientOpt("INSERT INTO Table_Supplier (SupplierName,SupplierTel) VALUES (name,tel)",paras, mandType.Text);if (i > 0){r = true;}return r;}/// <summary>查询供应商表////// </summary>/// <returns></returns>public DataTable SelSupplier(){DataTable dt = new DataTable();dt = sqlclient.SqlClientQuery("SELECT * FROM dbo.Table_Supplier", mandType.Text);return dt;}/// <summary>查询供应商表根据id////// </summary>/// <param name="id"></param>/// <returns></returns>public DataTable SelSupplier(string id){SqlParameter[] paras = new SqlParameter[] {new SqlParameter("id", id),};DataTable dt = new DataTable();dt = sqlclient.SqlClientQuery("SELECT * FROM dbo.Table_Supplier where SupplierId = id",paras, mandType.Text);return dt;}/// <summary>根据name查询id////// </summary>/// <param name="name"></param>/// <returns></returns>public DataTable SelId(string name){SqlParameter[] paras = new SqlParameter[] {new SqlParameter("name", name),};DataTable dt = new DataTable();dt = sqlclient.SqlClientQuery("SELECT SupplierId FROM dbo.Table_Supplier where SupplierName = name", paras, mandType.Text);return dt;}/// <summary>删除供应商////// </summary>/// <param name="id"></param>/// <returns></returns>public bool DelSupplier(string id){bool r = false;int i;SqlParameter[] paras = new SqlParameter[] {new SqlParameter("id", id),};i = sqlclient.SqlClientOpt("DELETE FROM Table_Supplier WHERE SupplierId = id",paras, mandType.Text);if (i > 0){r = true;}return r;}/// <summary>修改供应商////// </summary>/// <param name="id"></param>/// <param name="name"></param>/// <param name="tel"></param>/// <returns></returns>public bool UpdateSupplier(string id, string name,string tel){bool r = false;int i;SqlParameter[] paras = new SqlParameter[] {new SqlParameter("id", id),new SqlParameter("name", name),new SqlParameter("tel", tel)};i = sqlclient.SqlClientOpt("UPDATE Table_Supplier SET SupplierName=name,SupplierTel = tel WHERE SupplierId = id",paras ,mandType.Text); if (i > 0){r = true;}return r;}}配件助手类public class PartsHelper{public PartsHelper(){////TODO: 在此处添加构造函数逻辑//}SqlClient sqlclient = new SqlClient();/// <summary>查询配件////// </summary>/// <returns></returns>public DataTable SelParts(){DataTable dt = new DataTable();dt = sqlclient.SqlClientQuery("SELECT * FROM dbo.Table_Parts inner join Table_PartsCategory on Table_Parts.CategoryId = Table_PartsCategory.CategoryId", mandType.Text);return dt;}/// <summary>通过类别查询配件////// </summary>/// <param name="caId"></param>/// <returns></returns>public DataTable SelPartsByCaId(string caId){SqlParameter[] paras = new SqlParameter[] {new SqlParameter("caId",caId),};DataTable dt = new DataTable();dt = sqlclient.SqlClientQuery("SELECT * FROM dbo.Table_Parts inner join Table_PartsCategory on Table_Parts.CategoryId = Table_PartsCategory.CategoryId where CategoryId = caId ",paras, mandType.Text);return dt;}/// <summary>通过id查询配件表////// </summary>/// <param name="id"></param>/// <returns></returns>public DataTable SelParts(string id){SqlParameter[] paras = new SqlParameter[] {new SqlParameter("id", id),};DataTable dt = new DataTable();dt = sqlclient.SqlClientQuery("SELECT * FROM dbo.Table_Parts where PartsId = id", paras, mandType.Text);return dt;}/// <summary>通过name查询id////// </summary>/// <param name="name"></param>/// <returns></returns>public DataTable SelPartsId(string name){SqlParameter[] paras = new SqlParameter[] {new SqlParameter("name", name),};DataTable dt = new DataTable();dt = sqlclient.SqlClientQuery("SELECT PartsId FROM dbo.Table_Parts where PartsName = name", paras, mandType.Text);return dt;}/// <summary>增加配件////// </summary>/// <param name="name"></param>/// <param name="brand"></param>/// <param name="caId"></param>/// <returns></returns>public bool InsertParts(string name, string brand, string caId){bool r = false;int i;SqlParameter[] paras = new SqlParameter[] {new SqlParameter("name", name),new SqlParameter("brand", brand),new SqlParameter("caId",caId)};i = sqlclient.SqlClientOpt("INSERT INTO Table_Parts(PartsName,PartsBrand,CategoryId) VALUES (name,brand,caId)", paras, mandType.Text);if (i > 0){r = true;}return r;}/// <summary>删除配件////// </summary>/// <param name="id"></param>/// <returns></returns>public bool DelParts(string id){bool r = false;int i;SqlParameter[] paras = new SqlParameter[] {new SqlParameter("id", id),};i = sqlclient.SqlClientOpt("DELETE FROM Table_Parts WHERE PartsId = id", paras, mandType.Text);if (i > 0){r = true;}return r;}/// <summary>修改配件////// </summary>/// <param name="id"></param>/// <param name="name"></param>/// <param name="brand"></param>/// <param name="caId"></param>/// <returns></returns>public bool UpdateParts(string id, string name,string brand,string caId){bool r = false;int i;SqlParameter[] paras = new SqlParameter[] {new SqlParameter("id", id),new SqlParameter("name", name),new SqlParameter("brand", brand),new SqlParameter("caId", caId),};i = sqlclient.SqlClientOpt("UPDATE Table_Parts SET PartsName=name, PartsBrand = brand ,CategoryId = caId WHERE PartsId = id", paras, mandType.Text); if (i > 0){r = true;}return r;}}出货单助手类public class OutListHelper{public OutListHelper(){////TODO: 在此处添加构造函数逻辑//}SqlClient sqlclient = new SqlClient();/// <summary>增加出货单////// </summary>/// <param name="time"></param>/// <param name="num"></param>/// <param name="price"></param>/// <param name="partsId"></param>/// <returns></returns>public bool InsertOutList(string time, int num, float price, string partsId) {bool r = false;int i;SqlParameter[] paras = new SqlParameter[] {new SqlParameter("time", time),new SqlParameter("num", num),new SqlParameter("price",price),new SqlParameter("partsId", partsId)};i = sqlclient.SqlClientOpt("INSERT INTO Table_OutLists (OutTime,OutNum,Outprice,PartsId) VALUES (time,num,price,partsId)", paras, mandType.Text);if (i > 0){r = true;}return r;}/// <summary>查询出库单////// </summary>/// <returns></returns>public DataTable SelOutLists(){DataTable dt = new DataTable();dt = sqlclient.SqlClientQuery("SELECT Table_OutLists.OutListsId, Table_Parts.PartsName, Table_OutLists.OutNum, Table_OutLists.Outprice, Table_OutLists.OutTime FROM Table_OutLists INNER JOIN Table_Parts ON Table_OutLists.PartsId = Table_Parts.PartsId", mandType.Text);return dt;}}库存助手类public class InventoryHelper{public InventoryHelper(){////TODO: 在此处添加构造函数逻辑//}SqlClient sqlclient = new SqlClient();/// <summary>首次添加库存////// </summary>/// <param name="id"></param>/// <param name="num"></param>/// <returns></returns>public bool InsertInv(string id,int num){bool r = false;int i;SqlParameter[] paras = new SqlParameter[] {new SqlParameter("id", id),new SqlParameter("num", num),};i = sqlclient.SqlClientOpt("INSERT INTO Table_Inventory (PartsId,InventoryNum) VALUES (id,num)", paras, mandType.Text);if (i > 0){r = true;}return r;}/// <summary>更新库存////// </summary>/// <param name="id"></param>/// <param name="num"></param>/// <returns></returns>public bool UpdateInv(string id, int num){bool r = false;int i;SqlParameter[] paras = new SqlParameter[] {new SqlParameter("id", id),new SqlParameter("num", num),};i = sqlclient.SqlClientOpt("UPDATE Table_Inventory SET InventoryNum=num WHERE PartsId = id", paras, mandType.Text);if (i > 0){r = true;}return r;}/// <summary>查询库存////// </summary>/// <param name="id"></param>/// <returns></returns>public DataTable SelInv(string id){SqlParameter[] paras = new SqlParameter[] {new SqlParameter("id", id),};DataTable dt = new DataTable();dt = sqlclient.SqlClientQuery("SELECT InventoryNum FROM dbo.Table_inventory where PartsId = id",paras, mandType.Text);return dt;}/// <summary>查询配件库存////// </summary>/// <returns></returns>public DataTable SelInv(){DataTable dt = new DataTable();dt = sqlclient.SqlClientQuery("SELECT Table_Parts.PartsName,Table_Inventory.InventoryNum FROM Table_Inventory INNER JOIN Table_Parts ON Table_Inventory.PartsId = Table_Parts.PartsId", mandType.Text);return dt;}}进货单助手类public class InListHelper{public InListHelper(){////TODO: 在此处添加构造函数逻辑//}SqlClient sqlclient = new SqlClient();/// <summary>增加进货单////// </summary>/// <param name="time"></param>/// <param name="num"></param>/// <param name="price"></param>/// <param name="supplierId"></param>/// <param name="partsId"></param>/// <returns></returns>public bool InsertInList(string time, int num, float price,string supplierId,string partsId){bool r = false;int i;SqlParameter[] paras = new SqlParameter[] {new SqlParameter("time", time),new SqlParameter("num", num),new SqlParameter("price",price),new SqlParameter("supplierId", supplierId),new SqlParameter("partsId", partsId),};i = sqlclient.SqlClientOpt("INSERT INTO Table_InLists (InTime,InNum,InPrice,SupplierId,PartsId) VALUES (time,num,price,supplierId,partsId)", paras, mandType.Text);if (i > 0){r = true;}return r;}/// <summary>查询入库单////// </summary>/// <returns></returns>public DataTable SelInLists(){DataTable dt = new DataTable();dt = sqlclient.SqlClientQuery("SELECT Table_Parts.PartsName, Table_InLists.InNum, Table_InLists.InTime, Table_InLists.InPrice, Table_InLists.InListsId FROM Table_InLists INNER JOIN Table_Parts ON Table_InLists.PartsId = Table_Parts.PartsId", mandType.Text);return dt;}}类别助手类public class CategoryHelper{public CategoryHelper(){////TODO: 在此处添加构造函数逻辑//}SqlClient sqlclient = new SqlClient();/// <summary>增加配件类别////// </summary>/// <param name="name"></param>/// <returns></returns>public bool InsertCategory(string name){bool r = false;int i;SqlParameter[] paras = new SqlParameter[] {new SqlParameter("name", name),};i = sqlclient.SqlClientOpt("INSERT INTO Table_PartsCategory (CategoryName) VALUES (name)", paras, mandType.Text);if (i > 0){r = true;}return r;}/// <summary>查询类别表////// </summary>/// <returns></returns>public DataTable SelCategory(){DataTable dt = new DataTable();dt = sqlclient.SqlClientQuery("SELECT * FROM dbo.Table_PartsCategory", mandType.Text);return dt;}。