4.2.3存储过程设计 在本公司内部管理软件运行过程中,有些工作需经常进行,比如向各个表中插入、更新、删除相关的基本信息等操作。为了提高软件的运行效率,创建了若 内容来自www.paper51.com 干存储过程。其中主要存储过程的Transact-SQL代码如下: http://www.paper51.com 1.存储结构addclient用于向客户信息管理表(client)中插入相关数据。 copyright paper51.com
CREATE PROCEDURE addclient paper51.com
@client_id char(100), @client_name char(100),@clientcharge char(100), copyright paper51.com
@client_level int, @client_email varchar(20), @client_tell varchar(20), paper51.com @client_address varchar(50) 内容来自www.paper51.com AS copyright paper51.com
INSERT INTO client http://www.paper51.com (client_id, client_name,client_charge, client_address, client_level, client_email, 内容来自www.paper51.com
client_tell ) paper51.com VALUES 内容来自论文无忧网 www.paper51.com (@client_id, @client_name,@client_charge, @client_address, @client_level, 内容来自论文无忧网 www.paper51.com @client_email, @client_tell ) paper51.com 2.存储过程AddComdetail。用于向合同执行情况信息表(com_detail)中添加数据。 copyright paper51.com CREATE PROCEDURE AddComdetail 内容来自论文无忧网 www.paper51.com @Compact_id char(10), @Product_id char(10), @Product_num int, copyright paper51.com @Product_send int, @Product_price money http://www.paper51.com AS 内容来自www.paper51.com INSERT INTOcom_detail 内容来自www.paper51.com (Compact_id, Product_id,Product_num, Product_send, Product_price ) paper51.com VALUES copyright paper51.com (@Compact_id, @Product_id, @Product_num, @Product_send, http://www.paper51.com @Product_price ) 内容来自论文无忧网 www.paper51.com 3.存储结构Addcompact。用于向合同基本信息表(compact)中添加数据。 copyright paper51.com CREATE PROCEDURE Addcompact 内容来自论文无忧网 www.paper51.com
@compact_id char(10), @client_id char(10), @compact_state char(10), http://www.paper51.com @compact_start varchar(50), @compact_send datetime, copyright paper51.com @compact_finish datetime,@compact_person char(10), http://www.paper51.com
@compact_price money 内容来自www.paper51.com
AS 内容来自www.paper51.com INSERT INTO compact 内容来自论文无忧网 www.paper51.com (compact_id, client_id, compact_state, compact_start, compact_send, 内容来自论文无忧网 www.paper51.com compact_finish, compact_person, compact_price ) paper51.com VALUES 内容来自论文无忧网 www.paper51.com
(@compact_id, @client_id,@compact_state, @compact_start, @compact_send, 内容来自www.paper51.com @compact_finish, @compact_person,@compact_price ) 内容来自论文无忧网 www.paper51.com 4.存储结构Addproduct。用于向人才部管理的求职信息表(product)中添加数据。 内容来自论文无忧网 www.paper51.com
CREATE PROCEDURE Addproduct 内容来自www.paper51.com @Product_id char(10),@Product_name varchar(50),@spec char(20), 内容来自论文无忧网 www.paper51.com @price char(20), @Product_descnbetext copyright paper51.com AS 内容来自论文无忧网 www.paper51.com INSERT INTO product 内容来自www.paper51.com (Product_id, Product_name,spec, price, Product_descnbe ) 内容来自论文无忧网 www.paper51.com VALUES paper51.com ( @Product_id, @Product_name,@spec, @price, @Product_descnbe ) http://www.paper51.com 5.存储结构Addusers。用于向员工信息管理表users添加数据。 http://www.paper51.com
CREATE PROCEDURE Addusers 内容来自论文无忧网 www.paper51.com
@User_id char(10), @passwordchar(10), @name varchar(50), http://www.paper51.com @branch int, @tell Varchar(20), @email varchar(50) http://www.paper51.com AS copyright paper51.com INSERT INTO users copyright paper51.com (Userid, password, name,branch, tell, email ) copyright paper51.com VALUES 内容来自论文无忧网 www.paper51.com
( @User_id, @password, @name, @branch, @tell, @email ) paper51.com
6.存储结构deleteitem。用于删除项目信息表(item)中相关信息。 paper51.com CREATE Procedure deleteitem 内容来自www.paper51.com
@item_id varchar(50) 内容来自www.paper51.com AS copyright paper51.com Delete From item copyright paper51.com Where item_id=@item_id paper51.com 7.存储结构edititem。用于更新项目管理信息(item)中相关信息。 http://www.paper51.com CREATE Procedureedititem 内容来自论文无忧网 www.paper51.com @item_id varchar(50), @item_name varchar(50), copyright paper51.com @item_show varchar(100), @item_datedatetime http://www.paper51.com
AS copyright paper51.com
UPDATA item 内容来自www.paper51.com SET copyright paper51.com item_name=@item_name,item_show=@item_show, item_date=@item_date http://www.paper51.com WHERE item_id=@item_id copyright paper51.com 4.2.4数据库的连接 paper51.com
本次设计是在资源管理器中建立 DB.cs类来与数据库进行连接。代码如下: 内容来自论文无忧网 www.paper51.com public static SqlConnection CreateConnection() http://www.paper51.com {SqlConnection conn=new SqlConnection (“server= ;database=woclientserver; copyright paper51.com uid=sa;pwd= ;”); paper51.com return conn; } paper51.com
在其它后台程序中可直接定义SqlConnectioncn=DB.CreateConnection();即可与数据库进行连接。 paper51.com 4.3各功能模块的的实现 内容来自www.paper51.com 根据前面的需求分析和设计方案,该软件主要由如下代码页来实现: http://www.paper51.com (1)登录界面(default.aspx); copyright paper51.com (2)管理员主界面(admin1.aspx);个人管理主界面(geren.aspx);各部门主界面:合同部(hetong1.aspx);人才部(rencai2.aspx);客户部(kehu3.aspx);财务部(caiwu4.aspx);项目部(xiangmu5.aspx)等; 内容来自论文无忧网 www.paper51.com (3)管理员操作界面(admin1.aspx):员工管理、查询(user1.aspx)、添加(adduser1.aspx)界面;部门管理(bumenshow.aspx)、添加(addbms.aspx)界面;员工进度管理、查询(leadlog.aspx)界面;内部留言版管理、查询(guanforum.aspx)界面;文档管理(dowmlist1.aspx)界面; paper51.com
(4)合同部(hetong1.aspx):合同管理、查询(compact1.aspx)及添加(addcompact1.aspx)界面;合同执行情况管理、查询(sell1.aspx)及添加(addsell1.aspx)界面;合同执行情况统计管理及查询(selltj1.aspx)界面;合同附件的管理、查询(showcom.aspx)及添加(addcomwith.aspx)界面; 内容来自论文无忧网 www.paper51.com
(5)人才部(rencai2.aspx):求职信息管理、查询(product1.aspx)、添加(addproduct1.aspx)界面; copyright paper51.com (6)客户部(kehu3.aspx):客户信息管理、查询(client1.aspx)、添加(addclient1.aspx)界面; paper51.com
(7)财务部(caiwu4.aspx):员工个人工资管理、查询(count.aspx)、添加(addcount.aspx)界面;部门财务信息管理、查询(financial.aspx)、添加(addf.aspx)界面; 内容来自论文无忧网 www.paper51.com (8)项目部(xiangmu5.aspx):项目信息管理、查询(item1.aspx)、添加(additem1.aspx)界面; copyright paper51.com (9)个人管理(geren.aspx):密码修改界面(password.aspx);个人进度查询界面(gelog.aspx);个人工资查询界面(userpay.aspx);个人进度添加界面(addlog.aspx);文档上传界面(upfile1.aspx);个人留言添加(forum.aspx); paper51.com (10)进度查询界面(log1.aspx); 内容来自论文无忧网 www.paper51.com (11)内部留言版界面(forum.aspx); 内容来自www.paper51.com
(12)文档查询(downlist1.aspx)等。 paper51.com
由于篇幅有限,本文仅对主要页面做出设计分析。 copyright paper51.com 项目设计前期工作: paper51.com (1)在ASP.NET 2003中新建名为woclientserver的项目,打开项目,由于设计的需要,先在右侧解决方案资源管理器中添加了两个新文件夹main和inc。其中main用于存放本软件的主体代码文件;而inc则用于存放相关用户自定义代码文件。又由于该软件具有文档上传、查看和合同附件上传、查看等功能,故还应添加了两个文件夹:uploads和withfile,其中uploads用于存放员工上传文档,withfile用于存放合同附件文档。此外,还添加了新的类:DB.cs用于建立与数据库的连接;FileDB.cs用于定义文档的上传所需要的方法。 paper51.com (2)为了界面的整体性和简洁性还设置了3个用户自定义控件(header;left;bottom),其设计构思如下:在inc文件夹中添加3个Web用户控件,分别将其命名为:header.ascx(页面底部显示);left.ascx(页面左侧显示);bottom.ascx(页面顶部显示)。自定义控件的界面设计应注意其属性:pagelayout要设置为:flowlayout。自定义控件显示情况可见图示: 内容来自www.paper51.com ①页面底部显示:(bottom) paper51.com paper51.com 图4 用户自定义控件(bottom)显示 paper51.com ②页面顶部显示:(header)。其中包含控件Hyperlink:Text=”猎头公司内部管理软件”;Navigateurl=”default.aspx”即点击该连接将回到登录界面(default.aspx)。如下图所示: copyright paper51.com
copyright paper51.com 图5 用户自定义控件(header)的显示 内容来自论文无忧网 www.paper51.com
③左侧系统导航显示(left),如图所示,其控件介绍如下表: 内容来自论文无忧网 www.paper51.com
copyright paper51.com 图6 用户自定义控件(left)显示 copyright paper51.com
(3)设置好用户自定义控件后,在以后的页面设计中只需在要显示自定义控件的页面的HTML中添加如下定义: 内容来自论文无忧网 www.paper51.com
<%@ RegisterTagPrefix="H" TagName="header" Src="../inc/header.ascx"%> copyright paper51.com <%@ Register TagPrefix="L"TagName="left" Src="../inc/left.ascx"%> copyright paper51.com <%@ RegisterTagPrefix="B" TagName="bottom" Src="../inc/bottom.ascx"%> 内容来自论文无忧网 www.paper51.com 并在相应位置写入如下自定义代码即可: 内容来自www.paper51.com
<H:HEADERid="Header" runat="server"></H:HEADER> copyright paper51.com
<L:LEFTid="left" runat="server"></L:LEFT> 内容来自论文无忧网 www.paper51.com
<B:BOTTOM id="bottom"runat="server"></B:BOTTOM> 内容来自论文无忧网 www.paper51.com 4.3.1登录页面的设计 http://www.paper51.com 1.添加窗体default.aspx用于设计登录界面。界面所包含的控件,详见下表: 内容来自www.paper51.com 表8 登录界面主要控件介绍 内容来自www.paper51.com
控件名 内容来自论文无忧网 www.paper51.com 说明 http://www.paper51.com Table1 内容来自论文无忧网 www.paper51.com
装载marquee,用于显示流动字幕 http://www.paper51.com Table2 http://www.paper51.com 用于显示用户自定义控件bottom,及流动字幕 paper51.com Calendar1 内容来自www.paper51.com 日历控件用于显示日期 http://www.paper51.com Label4 内容来自www.paper51.com 显示系统时间等 内容来自论文无忧网 www.paper51.com Textbox1 内容来自论文无忧网 www.paper51.com
Id=id;用于输入员工登录ID; 内容来自论文无忧网 www.paper51.com Textbox2 内容来自论文无忧网 www.paper51.com Id=password;用于输入登录密码; 内容来自www.paper51.com Botton1 paper51.com Text=”登录”;id=Btn_login;点击将触发验证和登录事件 copyright paper51.com Label2 paper51.com
Id=Lbl_note;显示信息提示; http://www.paper51.com 2.后台代码 (default.aspx.cs) 如下: 内容来自www.paper51.com 因程序中要引用相关方法,所以首先要添加using System.Data.SqlClient;其具体功能代码如下: http://www.paper51.com (1)时间显示: copyright paper51.com private void Page_Load(object sender, System.EventArgs e) paper51.com { Label4.Text="今天是:"+Calendar1.TodaysDate.ToShortDateString();} copyright paper51.com (2)点击”确定”后触发验证和登录事件代码如下: http://www.paper51.com private void Btn_login_Click(object sender, System.EventArgs e) 内容来自论文无忧网 www.paper51.com { 连接数据库 copyright paper51.com SqlConnection conn=DB.CreateConnection(); 内容来自www.paper51.com conn.Open(); 内容来自www.paper51.com 验证用户ID与所输密码是否匹配 内容来自论文无忧网 www.paper51.com
string strsql="select * from users whereUserid='"+id.Text+"' and 内容来自www.paper51.com password='"+password.Text+"'"; paper51.com
SqlCommand cm=new SqlCommand(strsql,conn); 内容来自www.paper51.com SqlDataReader dr=cm.ExecuteReader(); paper51.com
若可读出匹配信息,则以不同身份登录 内容来自论文无忧网 www.paper51.com
if(dr.Read()) paper51.com { 保存用户部门号以便分配权限;保存用户ID以后程序有需要 http://www.paper51.com Session["branch"]=dr["branch"]; copyright paper51.com
Session["userid"]=dr["userid"]; http://www.paper51.com if(Session["branch"].ToString()=="0") copyright paper51.com { 部门号为0则是:系统管理员登录 copyright paper51.com
Response.Redirect("main/admin1.aspx"); paper51.com
} http://www.paper51.com
elseif(Session["branch"].ToString()=="1") paper51.com { 部门号是1则是:合同部员工登录 内容来自www.paper51.com Response.Redirect("main/hetong1.aspx"); paper51.com } copyright paper51.com
else if(Session["branch"].ToString()=="2") 内容来自www.paper51.com { 部门号是2则是:人才部登录 copyright paper51.com Response.Redirect("main/rencai2.aspx"); http://www.paper51.com } 内容来自论文无忧网 www.paper51.com elseif(Session["branch"].ToString()=="4") 内容来自论文无忧网 www.paper51.com { 部门号是4则是:财务部登录 http://www.paper51.com
Response.Redirect("main/caiwu4.aspx"); http://www.paper51.com } copyright paper51.com else if(Session["branch"].ToString()=="5") 内容来自论文无忧网 www.paper51.com { 部门号是5则是:项目部登录 内容来自论文无忧网 www.paper51.com Response.Redirect("main/xiangmu5.aspx"); 内容来自论文无忧网 www.paper51.com
} paper51.com else copyright paper51.com { 部门号是3则是:客户部登录 内容来自www.paper51.com
Response.Redirect("main/kehu3.aspx"); copyright paper51.com } paper51.com } 内容来自www.paper51.com 信息不匹配则不可登录,显示提示信息 内容来自www.paper51.com else copyright paper51.com
{ Lbl_note.Text="登录失败,请检查用户名、密码输入!";} 内容来自www.paper51.com } 内容来自论文无忧网 www.paper51.com 3.”登录”界面如图所示: paper51.com 内容来自www.paper51.com 图7 登录界面显示 http://www.paper51.com
4.3.2员工信息管理页面的设计 http://www.paper51.com
只有管理员身份可登录管理员主页(admin1.aspx)à员工管理; 内容来自论文无忧网 www.paper51.com 1.在main文件夹中添加新窗体user1.aspx;其所用主要控件详见下表: 内容来自论文无忧网 www.paper51.com 表9 用户管理界面主要控件介绍 copyright paper51.com 控件 内容来自www.paper51.com 说明 http://www.paper51.com Table1 内容来自www.paper51.com 用于显示左侧系统导航(用户自定义left) 内容来自论文无忧网 www.paper51.com Table3 paper51.com 用于显示用户自定义bottom http://www.paper51.com DatagGid1 copyright paper51.com Id=dg1;用户信息管理 paper51.com Hyperlink1 copyright paper51.com 连接adduser1.aspx;text=”添加新信息” 内容来自www.paper51.com Panel1 paper51.com
Id=”chaxun”用于装载指定信息的查询的相关控件 http://www.paper51.com Panel2 内容来自论文无忧网 www.paper51.com Id=”panel1”用于装载显示查询信息的DataList1 内容来自www.paper51.com DataList1 http://www.paper51.com 显示指定查询的相关信息内容 paper51.com
Linkbotton1 内容来自论文无忧网 www.paper51.com Text=”第一页”;id=first;CommandName=”first”用于datagrid1的快速翻页 内容来自论文无忧网 www.paper51.com Linkbotton2 paper51.com Text=”末页”;id=”last”;CommandName=”last”;功能同上 copyright paper51.com Botton1 paper51.com Text=”查询”点击触发查询相关事件 copyright paper51.com
Botton2 内容来自www.paper51.com Text=”确定”;id=”queding”;点击查询指定信息 内容来自www.paper51.com Botton3 内容来自论文无忧网 www.paper51.com Text=”取消”;id=”quxiao”;点击取消查询 内容来自论文无忧网 www.paper51.com Textbox1 copyright paper51.com Id=”id1”用于输入指定查询的用户ID http://www.paper51.com Lable1 paper51.com Id=”di”用于显示DataGrid的当前页数 内容来自www.paper51.com Lable2 内容来自www.paper51.com Id=”gong”用于显示DataGrid的总共页数 内容来自www.paper51.com Lable3 内容来自论文无忧网 www.paper51.com Id=”labmsg”显示DataGrid的编辑提示信息 内容来自论文无忧网 www.paper51.com
2.HTML中相关主要代码: copyright paper51.com 由于该界面使用了DataGrid和DataList这两个控件,所以需要在HTML中编写相关代码完成控件设置和数据绑定,其HTML中主要代码如下: copyright paper51.com (1)显示员工信息的DataGrid相关设置代码: copyright paper51.com <Columns> copyright paper51.com <asp:BoundColumnDataField="Userid" ReadOnly="True" http://www.paper51.com HeaderText="职工ID"></asp:BoundColumn> paper51.com <asp:BoundColumn DataField="name"HeaderText="姓名”> 内容来自论文无忧网 www.paper51.com
</asp:BoundColumn> 内容来自www.paper51.com
<asp:BoundColumn DataField="gender"HeaderText="性别"> paper51.com </asp:BoundColumn> 内容来自论文无忧网 www.paper51.com
<asp:BoundColumn DataField="branch"HeaderText="部门"> http://www.paper51.com </asp:BoundColumn> http://www.paper51.com <asp:BoundColumn DataField="tell"HeaderText="联系电话"> copyright paper51.com
</asp:BoundColumn> paper51.com
<asp:BoundColumnDataField="email" HeaderText="Email"> 内容来自www.paper51.com </asp:BoundColumn> paper51.com <asp:EditCommandColumnButtonType="LinkButton" UpdateText="更新" 内容来自论文无忧网 www.paper51.com CancelText="取消" EditText="编辑"></asp:EditCommandColumn> 内容来自论文无忧网 www.paper51.com <asp:ButtonColumn Text="删除"CommandName="Delete"> 内容来自www.paper51.com </asp:ButtonColumn> 内容来自www.paper51.com
</Columns> http://www.paper51.com (2)显示指定查询信息的DataList的主要代码: paper51.com
<b>用户ID:</b><%#DataBinder.Eval(Container.DataItem,"userid")%><br> paper51.com <b>姓名:</b><%#DataBinder.Eval(Container.DataItem,"name")%><br> copyright paper51.com <b>性别:</b><%#DataBinder.Eval(Container.DataItem,"gender")%><br> copyright paper51.com <b>部门号:</b><%#DataBinder.Eval(Container.DataItem,"branch")%><br> 内容来自www.paper51.com
<b>电话:</b><%#DataBinder.Eval(Container.DataItem,"tell")%><br> http://www.paper51.com <b>Email:</b><%#DataBinder.Eval(Container.DataItem,"email")%><br> copyright paper51.com |