燕山大学
.Net程序设计实验报告
学 院 : 信息科学与工程学院
年级专业 : 08级计算机科学2班
指导教师 : 崔 永 强
学生学号 : 080104010108
学生姓名 : 吴英梅
提交日期 : 20##-05-13
实验一:实现登录界面,显示用户名字
实验设计:
1、编写login.html文件,实现登陆界面
2、 Login.aspx处理登录请求,登录信息保存在session中
3、Index.aspx中输出:欢迎+用户名
主要代码:
Login.html.中代码如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>登录</title>
</head>
<body>
<form action="login.aspx" method="post">
用户名:<input type="text" name="userName" /><br />
密码:<input type="password" name="userPwd" size="24" /><br />
<input type="submit" value="登录" />
</form>
</body>
</html>
Login.aspx.cs 中代码:
protected void Page_Load(object sender, EventArgs e)
{
String name = Request.Form.Get("userName");
Session["userName"] = name;
Response.Redirect("index.aspx");
}
Index.aspx.cs中代码:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("欢迎");
Response.Write(Session["userName"]);
}
实验二 统计在线人数
实验设计:
1、online.aspx 和online.aspx.cx实现显示在线人数的功能
2、global.asax和global.asax.cs主要负责响应事件和人数统计
主要代码:
Online.aspx.cs中代码:
protected void Page_Load(object sender, EventArgs e)
{
Session.Timeout = 1;
int i = (int)Application["user_session"];
Response.Write("本网站当前有 ");
Response.Write(i);
Response.Write(" 位访问者");
}
global.asax.cs中代码:
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
Application["user_session"] = 0;
}
void Session_Start(object sender, EventArgs e)
{
Application.Lock();
Application["user_session"] = (int)Application["user_session"] + 1;
Application.UnLock();
}
void Session_End(object sender, EventArgs e)
{
Application.Lock();
Application["user_session"] = (int)Application["user_session"] - 1;
Application.UnLock();
}
实验三:三层架构实现用户登录与注册
实验设计:
1、 封装数据库访问的操作,定义DBHelper类
2、 定义模型类User和Role
3、 实现把模型信息存入DB中的功能,定义UserService类
4、 定义业务类UserManager,完成限制
5、 Login.aspx显示登录界面,登录成功跳转到index.aspx
6、 Register.aspx显示注册界面, 注册成功跳转到index.aspx
7、 Index.aspx显示“欢迎”
主要代码:
DBHelper类:
public class DBHelper
{
OleDbConnection con;
public DBHelper()
{
String connectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\Student.mdb";
con = new OleDbConnection(connectionString);
con.Open();
}
public void executeNonQuery(String sql, OleDbParameter[] parameter)
{
OleDbCommand command = new OleDbCommand();
command.Connection = con;
command.CommandText = sql;
for (int i = 0; i < parameter.Length; i++)
command.Parameters.Add(parameter[i]);
command.ExecuteNonQuery();
}
public void executeNonQuery(String sql)
{
OleDbCommand command = new OleDbCommand();
command.Connection = con;
command.CommandText = sql;
command.ExecuteNonQuery();
}
public OleDbDataReader executeQuery(String sql)
{
OleDbCommand command = new OleDbCommand();
command.Connection = con;
command.CommandText = sql;
OleDbDataReader reader = command.ExecuteReader();
return reader;
}
public OleDbDataReader executeQuery(String sql, OleDbParameter[] parameter)
{
OleDbCommand command = new OleDbCommand();
command.Connection = con;
command.CommandText = sql;
for (int i = 0; i < parameter.Length; i++)
command.Parameters.Add(parameter[i]);
OleDbDataReader reader = command.ExecuteReader();
return reader;
}
}
UserService类
public class UserService
{
public UserService() { }
public void addUser(User user)
{
String sql = "insert into table_user(userLogin,userPwd,userRole) values (@userLogin,@userPwd,@userRole)";
OleDbParameter[] parameter = new OleDbParameter[]
{
new OleDbParameter("@userLogin",user.userLogin),
new OleDbParameter("@userPwd",user.userPwd),
new OleDbParameter("@userRole",user.userRole.roleID)
};
DBHelper helper = new DBHelper();
helper.executeNonQuery(sql, parameter);
}
public void deleteUser(User user)
{
String sql = "delete from table table_user where userLogin=@userLogin and userPwd=@userPwd and userRole=@userRole";
OleDbParameter[] parameter = new OleDbParameter[]
{
new OleDbParameter("@userLogin",user.userLogin),
new OleDbParameter("@userPwd",user.userPwd),
new OleDbParameter("@userRole",user.userRole.roleID)
};
DBHelper helper = new DBHelper();
helper.executeNonQuery(sql, parameter);
}
public User getUserByLogin(String userLogin)
{
String sql = "select * from table table_user,table_role where userRole=roleID and userLogin=@user.userLogin";
OleDbParameter[] parameter = new OleDbParameter[]
{
new OleDbParameter("@userLogin",userLogin),
};
DBHelper helper = new DBHelper();
OleDbDataReader reader = helper.executeQuery(sql,parameter);
if (reader.Read())
{
User user = new User();
user.userLogin = reader["userName"].ToString();
user.userPwd = reader["userPwd"].ToString();
user.userRole = new Role();
user.userRole.roleID = (int)reader["roleID"];
user.userRole.roleName = reader["roleName"].ToString();
reader.Close();
return user;
}
else
return null;
}
}
UserManager类:
public class UserManager
{
public UserManager() { }
public bool addUser(User user)
{
UserService service = new UserService();
User temp = service.getUserByLogin(user.userLogin);
if (temp != null)
return false;
service.addUser(user);
return true;
}
public bool login(String userLogin,String userPwd)
{
UserService service = new UserService();
User temp = service.getUserByLogin(userLogin);
if (temp == null)
return false;
if (userPwd.Equals(temp.userPwd))
return true;
else
return false;
}
}
User类:
public class User
{
public String userLogin;
public String userPwd;
public Role userRole;
public User() { }
public String UserLogin
{
get { return userLogin; }
set { userLogin = value; }
}
public String UserPwd
{
get { return userPwd; }
set { userPwd = value; }
}
}
Role类:
public class Role
{
public int roleID;
public String roleName;
public Role() { }
public int RoleID
{
get { return roleID;}
set {roleID = value; }
}
public StringRoleName
{
get { return roleName; }
set {roleName = value; }
}
}
Login.aspx中代码:
用户按下“登录”按钮时,调用Button1_Click函数
protected void Button1_Click(object sender, EventArgs e)
{
UserManager manager = new UserManager();
if (manager.login(loginName.Text, loginPwd.Text))
Response.Redirect("index.aspx");
else
alertLabel.Text = "用户名或密码错误";
}
Register.aspx中代码
用户按下“注册”按钮时,调用Button1_Click函数
protected void Button1_Click(object sender, EventArgs e)
{
User user = new User();
user.UserLogin = TextBox1.Text;
user.UserPwd = TextBox2.Text;
user.UserRole = new Role();
user.UserRole.RoleID = "1";
UserManager manager = new UserManager();
if (manager.addUser(user))
Response.Redirect("index.aspx");
else
alertLabel.Text = "用户名已经存在";
}