偶做的用户管理系统
因为代码比较多,只贴一下,添加用户的代码,我把表示层和业务逻辑层分开了,单独建立了一个cls_user的类来对用户集中进行管理,里面包括了对用户的添加,删除,修改的方法,以及访问用户的名称,密码,权限等的字段,这样分开做也符合多层架构的原则,我没有单独做dal层,因为我部打算以后换数据库.
在前台的窗体中有几个下拉列表控件,我是分别用散列表和datatable来做数据动态绑定的,也算是一个小技巧吧.
在业务逻辑的类里我用使用了方法的输出参数,大家可以顺便看一下输出参数怎么用.
先贴前台的显示代码?注意dropdownlist控件的datatextfield和datavaluefield属性
add_user.aspx
<%@ page language="c#" codebehind="adduser.aspx.cs" autoeventwireup="false" inherits="oa.admin.users.adduser" %>
<!doctype html public "-//w3c//dtd html 4.0 transitional//en" >
<html>
<head>
<title>adduser</title>
<meta content="false" name="vs_snaptogrid">
<meta content="microsoft visual studio .net 7.1" name="generator">
<meta content="c#" name="code_language">
<meta content="javascript" name="vs_defaultclientscript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetschema">
<link href="../../style/wawa.css" type="text/css" rel="stylesheet">
</head>
<body ms_positioning="flowlayout">
<form id="form1" method="post" runat="server">
<table id="table1" cellspacing="1" cellpadding="1" width="500" border="1">
<tr>
<td align="left" colspan="3">
<p align="center"><font face="宋体"></font><font face="宋体">添加用户</font></p>
</td>
</tr>
<tr>
<td style="height: 16px">
<p align="right"><font face="宋体">用户名:</font></p>
</td>
<td style="height: 16px" align="left">
<p align="left"><font face="宋体"><asp:textbox id="user_name" runat="server"></asp:textbox></font></p>
</td>
<td style="height: 16px"><font face="宋体">
<p align="left"><asp:requiredfieldvalidator id="requiredfieldvalidator1" runat="server" controltovalidate="user_name" errormessage="用户名不能为空"></asp:requiredfieldvalidator></p>
</font>
</td>
</tr>
<tr>
<td>
<p align="right"><font face="宋体">密码:</font></p>
</td>
<td align="left">
<p align="left"><font face="宋体"><asp:textbox id="user_psw" runat="server" textmode="password"></asp:textbox></font></p>
</td>
<td>
<p align="left"><asp:requiredfieldvalidator id="requiredfieldvalidator2" runat="server" controltovalidate="user_psw" errormessage="密码不能为空"></asp:requiredfieldvalidator></p>
</td>
</tr>
<tr>
<td style="height: 17px">
<p align="right"><font face="宋体">用户类型:</font></p>
</td>
<td style="height: 17px" align="left">
<p align="left"><font face="宋体"><asp:dropdownlist id="user_flag" runat="server" datatextfield="key" datavaluefield="value"></asp:dropdownlist></font></p>
</td>
<td style="height: 17px">
<p align="right"><font face="宋体"></font> </p>
</td>
</tr>
<tr>
<td>
<p align="right"><font face="宋体">单位名称:</font></p>
</td>
<td align="left">
<p align="left"><font face="宋体"><asp:textbox id="user_danwei" runat="server"></asp:textbox></font></p>
</td>
<td>
<p align="left"><asp:requiredfieldvalidator id="requiredfieldvalidator3" runat="server" controltovalidate="user_danwei" errormessage="单位名称不能为空"></asp:requiredfieldvalidator></p>
</td>
</tr>
<tr>
<td>
<p align="right"><font face="宋体">地区:</font></p>
</td>
<td align="left">
<p align="left"><asp:dropdownlist id="user_address" runat="server" datatextfield="s2" datavaluefield="s1"></asp:dropdownlist></p>
</td>
<td>
<p align="right"> </p>
</td>
</tr>
<tr>
<td style="height: 17px">
<p align="right"><font face="宋体">用户说明:</font></p>
</td>
<td style="height: 17px" align="left"><asp:textbox id="user_shuoming" runat="server" textmode="multiline"></asp:textbox></td>
<td style="height: 17px"><asp:requiredfieldvalidator id="requiredfieldvalidator4" runat="server" controltovalidate="user_shuoming" errormessage="用户说明不能为空"></asp:requiredfieldvalidator></td>
</tr>
<tr>
<td></td>
<td align="left"><asp:button id="button1" runat="server" text="添加用户"></asp:button></td>
<td><font face="宋体"></font></td>
</tr>
</table>
</form>
</body>
</html>
再贴这个文件的后台编码类:
add_user.aspx.cs
using system;
using system.collections;
using system.componentmodel;
using system.data;
using system.drawing;
using system.web;
using system.web.sessionstate;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.htmlcontrols;
namespace oa.admin.users
{
/// <summary>
/// adduser 的摘要说明。
/// </summary>
public class adduser : system.web.ui.page
{
protected system.web.ui.webcontrols.requiredfieldvalidator requiredfieldvalidator1;
protected system.web.ui.webcontrols.requiredfieldvalidator requiredfieldvalidator2;
protected system.web.ui.webcontrols.requiredfieldvalidator requiredfieldvalidator3;
protected system.web.ui.webcontrols.textbox user_name;
protected system.web.ui.webcontrols.textbox user_psw;
protected system.web.ui.webcontrols.dropdownlist user_flag;
protected system.web.ui.webcontrols.textbox user_danwei;
protected system.web.ui.webcontrols.dropdownlist user_address;
protected system.web.ui.webcontrols.textbox user_shuoming;
protected system.web.ui.webcontrols.button button1;
protected system.web.ui.webcontrols.requiredfieldvalidator requiredfieldvalidator4;
private void page_load(object sender, system.eventargs e)
{
user_flag.datasource=ht_user_flag();
user_flag.databind();
listitem li=new listitem();
li.value="0";
li.text="系统管理员";
user_flag.items.insert(0,li);
user_address.datasource=dt_user_address();
user_address.databind();
// 在此处放置用户代码以初始化页面
}
icollection ht_user_flag()
{
hashtable ht=new hashtable();
ht.add("厅领导","1");
ht.add("省律师协会","2");
ht.add("省律师处","3");
ht.add("市律师协会","4");
ht.add("市律师处","5");
ht.add("省直律师事务所","6");
return ht;
}
icollection dt_user_address()
{
//其实向这样text和value值相同的用arraylist做绑定源也不错
datatable dt = new datatable();
//datarow dr;
datarow[] dr=new datarow[6];
dt.columns.add(new datacolumn("s1", typeof(string)));
dt.columns.add(new datacolumn("s2", typeof(string)));
dr[0]=dt.newrow();
dr[0]["s1"]="石家庄";
dr[0]["s2"]="石家庄";
dt.rows.add(dr[0]);
dr[1]=dt.newrow();
dr[1]["s1"]="保定";
dr[1]["s2"]="保定";
dt.rows.add(dr[1]);
dr[2]=dt.newrow();
dr[2]["s1"]="邢台";
dr[2]["s2"]="邢台";
dt.rows.add(dr[2]);
dr[3]=dt.newrow();
dr[3]["s1"]="张家口";
dr[3]["s2"]="张家口";
dt.rows.add(dr[3]);
dr[4]=dt.newrow();
dr[4]["s1"]="衡水";
dr[4]["s2"]="衡水";
dt.rows.add(dr[4]);
dr[5]=dt.newrow();
dr[5]["s1"]="沧州";
dr[5]["s2"]="沧州";
dt.rows.add(dr[5]);
dataview dv = new dataview(dt);
return dv;
}
#region web 窗体设计器生成的代码
override protected void oninit(eventargs e)
{
//
// codegen: 该调用是 asp.net web 窗体设计器所必需的。
//
initializecomponent();
base.oninit(e);
}
private void initializecomponent()
{
this.button1.click += new system.eventhandler(this.button1_click);
this.load += new system.eventhandler(this.page_load);
}
#endregion
private void button1_click(object sender, system.eventargs e)
{
string msg;
oa.cls.cls_user user=new oa.cls.cls_user();
user.user_name=user_name.text.tostring();
user.user_psw=user_psw.text.tostring();
user.user_flag=user_flag.selecteditem.value.tostring();
user.user_danwei=user_danwei.text.tostring();
user.user_address=user_address.selecteditem.value.tostring();
user.user_shuoming=user_shuoming.text.tostring();
if(user.adduser(out msg))
{
response.write("<script>alert("+msg+");location.href=adduser.aspx;</script>");
}
else{
response.write("没有添加成功<br>出错信息:"+msg+"<br>sql语句"+user.sql);
}
}
}
}
最后贴我写的用户管理的类的源代码:
using system;
using system.data.sqlclient;
using system.configuration;
namespace oa.cls
{
/// <summary>
/// cls_user 的摘要说明。
/// </summary>
public class cls_user
{
public cls_user()
{
myconn=new sqlconnection((string)configurationsettings.appsettings["connstring"]);//连接数据库
myconn.open();//打开
}
public string user_name; //用户名
public string user_psw;//用户密码
public string user_flag;//用户权限
public string user_danwei;//用户单位
public string user_address;//用户地址
public string user_shuoming;//用户说明
private sqlconnection myconn;
public string sql;
public bool adduser(out string msg)
{
//用户添加
sql = "insert into [web_user] (user_name,user_psw,user_flag,user_danwei,user_address,user_shuoming) values("+user_name+","+user_psw+","+user_flag+","+user_danwei+","+user_address+","+user_shuoming+")";
sqlcommand cmd = new sqlcommand(sql, myconn);
msg="用户添加成功";
try
{
cmd.executenonquery();
return true;
}
catch (sqlexception exc)
{
msg=exc.message;
return false;
}
finally
{
myconn.close();
}
}
public bool edituser()
{
return true;
}
public bool deluser()
{
return true;
}
}
}
