工具:VS2012
数据库:SQL server
简单说明:根据老师上课给的代码,进行了简单的改正适用于VS2012环境,包括注册、登录、查询、修改、删除功能,多数参考了网上的代码
百度云源代码连接testDAO:http://pan.baidu.com/s/1c0CTRgs
遇见的问题:
1、字符文本中字符太多: 在html中用的,在.NET中需要把双引号变成单引号,javascript中的部分双引号也需变成单引号,此处代码详见register.aspx
2、如何javascript获取表格中的行数:通过varx=document.getElementById("表格id");找到table,x.rows[].cells[]即可找到第几行第几列 此处代码详见register.aspx的javascript代码
3、如何通过asp获取url中参数的值:http://localhost:30965/testDAO/list.aspx?username=16&psaaword=21
String x= Request.QueryString["username"];即可获得username的值16
数据库名字:easylife 表的名字:table_user 表内容如图:
DBHelper.cs代码:在每一个对象的数据库访问类中:1、数据库连接反复出现 2、数据库连接打开和关闭反复出现 3、执行Sql语句的方法相似
因此,定义DBHelper类,封装常用的方法
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Data.SqlClient; 6 7 ///8 /// DBHelper 的摘要说明 9 /// 10 namespace testDAO.Library 11 { 12 public class DBHelper 13 {//server=.;Trusted_Connection=SSPI;database=easylife 14 private String connectionString = "server=.;database=easylife;uid=sa;pwd=root"; 15 16 public SqlDataReader ExecuteReader(String sql) 17 { 18 SqlConnection connection = new SqlConnection(connectionString); 19 connection.Open(); 20 21 SqlCommand command = new SqlCommand(sql,connection); 22 23 SqlDataReader result = command.ExecuteReader(); 24 25 return result; 26 } 27 28 public bool ExecuteCommand(String sql) 29 { 30 bool result = false; 31 32 try 33 { 34 SqlConnection connection = new SqlConnection(connectionString); 35 connection.Open(); 36 37 SqlCommand command = new SqlCommand(sql,connection); 38 //command.Connection = connection; 39 //command.CommandText = sql; 40 command.ExecuteNonQuery(); 41 42 43 connection.Close(); 44 45 result = true; 46 } 47 catch (Exception e) 48 { 49 throw e; 50 } 51 52 return result; 53 } 54 55 } 56 }
定义User类封装用户信息 User.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; ////// User 的摘要说明 /// namespace testDAO.Library { public class User { private String userName = ""; private String userLogin = ""; private String userPwd = ""; public String UserName { get { return userName; } set { userName = value; } } public String UserLogin { get { return userLogin; } set { userLogin = value; } } public String UserPwd { get { return userPwd; } set { userPwd = value; } } } }
采用UserService实现将用户信息的数据库操作 UserService.cs
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 6 using System.Data.SqlClient; 7 ///8 /// UserService 的摘要说明 9 /// 10 namespace testDAO.Library 11 { 12 public class UserService 13 { 14 public bool AddUser(User user) 15 { 16 bool result = false; 17 String sql = ""; 18 19 sql = "insert into table_user (userName,userLogin,userPwd)values("; 20 sql += "'" + user.UserName + "',"; 21 sql += "'" + user.UserLogin + "',"; 22 sql += "'" + user.UserPwd + "'"; 23 sql += ")"; 24 25 DBHelper helper = new DBHelper(); 26 result = helper.ExecuteCommand(sql); 27 return result; 28 29 } 30 31 public User GetUserByLogin(User user) 32 { 33 String sql = ""; 34 35 sql = "select * from table_user where userLogin='" + user.UserLogin + "'"; 36 37 DBHelper helper = new DBHelper(); 38 SqlDataReader reader = helper.ExecuteReader(sql); 39 User result = new User(); 40 if (reader.Read()) 41 { 42 43 result.UserName = reader.GetString(0); 44 result.UserLogin = reader.GetString(1); 45 result.UserPwd = reader.GetString(2); 46 47 } 48 else 49 { 50 return null; 51 } 52 53 return result; 54 } 55 56 public List GetAllUsers() 57 { 58 String sql = ""; 59 60 sql = "select * from table_user"; 61 62 DBHelper helper = new DBHelper(); 63 SqlDataReader reader = helper.ExecuteReader(sql); 64 65 if (!reader.HasRows) 66 { 67 return null; 68 } 69 70 List list = new List (); 71 while (reader.Read()) 72 { 73 User item = new User(); 74 75 item.UserName = reader.GetString(0); 76 item.UserLogin = reader.GetString(1); 77 item.UserPwd = reader.GetString(2); 78 79 list.Add(item); 80 } 81 82 return list; 83 } 84 85 public bool DeleteUsers(String i) 86 { 87 bool result = false; 88 String sql = ""; 89 sql = "delete from table_user where userLogin ='"+ i+" '" ; 90 DBHelper helper = new DBHelper(); 91 result = helper.ExecuteCommand(sql); 92 return result; 93 } 94 95 public bool UpdateUsers(User user) 96 { 97 bool result = false; 98 String sql = ""; 99 sql = "update table_user set userName= '" + user.UserName + "',userPwd='" + user.UserPwd + " ' where userlogin='" + user.UserLogin + " '"; 100 // update table_user set userName='1',userPwd='1' where userLogin='5' 101 DBHelper helper = new DBHelper(); 102 result = helper.ExecuteCommand(sql); 103 return result; 104 } 105 106 } 107 }
业务逻辑层UserManager.cs,是表示层与数据访问层的桥梁 ,用于完成逻辑判断、业务处理、数据传递等操作。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 6 ///7 /// UserManager 的摘要说明 8 /// 9 namespace testDAO.Library 10 { 11 public class UserManager 12 { 13 public bool AddUser(User user) 14 { 15 UserService service = new UserService(); 16 User temp = service.GetUserByLogin(user); 17 18 if (temp != null) 19 { 20 return false; 21 } 22 23 bool result = service.AddUser(user); 24 return result; 25 } 26 27 public bool Login(User user) 28 { 29 bool result = false; 30 31 UserService service = new UserService(); 32 33 User temp = service.GetUserByLogin(user); 34 if (temp == null) 35 { 36 result = false; 37 } 38 else if (user.UserPwd.Equals(temp.UserPwd)) 39 { 40 result = true; 41 } 42 43 return result; 44 } 45 46 public List GetAllUsers() 47 { 48 UserService service = new UserService(); 49 return service.GetAllUsers(); 50 } 51 public bool DeleteUser(User user) 52 { 53 UserService service = new UserService(); 54 55 bool result = service.DeleteUsers(user.UserLogin); 56 return result; 57 58 } 59 60 public bool UpdateUser(User user) 61 { 62 UserService service = new UserService(); 63 bool result = service.UpdateUsers(user); 64 return result; 65 } 66 } 67 }
注册界面代码regeister.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="register.aspx.cs" Inherits="register" %> "http://www.w3.org/1999/xhtml"> "server"> "Content-Type" content="text/html; charset=utf-8"/>
注册界面逻辑代码 regeister.aspx.cs
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 using System.Data.SqlClient; 8 using testDAO.Library; 9 10 public partial class register : System.Web.UI.Page 11 { 12 protected void Page_Load(object sender, EventArgs e) 13 { 14 15 } 16 17 public void CreateTable() 18 { 19 String connectionString = "server=.;Trusted_Connection=SSPI;database=easylife"; 20 SqlConnection connection = new SqlConnection(connectionString); 21 connection.Open(); 22 SqlCommand command = new SqlCommand(); 23 command.Connection = connection; 24 command.ExecuteNonQuery(); 25 connection.Close(); 26 } 27 protected void Button1_Click(object sender, EventArgs e) 28 { 29 String userName = nameText.Text; 30 String userLogin = loginText.Text; 31 String userPwd = pwdText.Text; 32 33 User user = new User(); 34 user.UserName = userName; 35 user.UserLogin = userLogin; 36 user.UserPwd = userPwd; 37 38 bool result = false; 39 UserManager manager = new UserManager(); 40 result = manager.AddUser(user); 41 Response.Write(result); 42 if (result) 43 { 44 Response.Write("注册成功"); 45 } 46 else 47 { 48 Response.Write("注册失败"); 49 } 50 } 51 protected void Button2_Click(object sender, EventArgs e) 52 { 53 Response.Redirect("login.aspx"); 54 } 55 }
登录界面代码 login.aspx
1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="login" %> 2 3 4 5 "http://www.w3.org/1999/xhtml"> 6 "server"> 7 "Content-Type" content="text/html; charset=utf-8"/> 827 289 10 11
登录界面逻辑代码 login.aspx.cs
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 using testDAO.Library; 8 9 public partial class login : System.Web.UI.Page 10 { 11 protected void Page_Load(object sender, EventArgs e) 12 { 13 14 } 15 protected void Button1_Click(object sender, EventArgs e) 16 { 17 Response.Redirect("register.aspx"); 18 } 19 20 protected void loginButton_Click(object sender, EventArgs e) 21 { 22 User user = new User(); 23 24 user.UserLogin = loginText.Text; 25 user.UserPwd = pwdText.Text; 26 27 UserManager manager = new UserManager(); 28 bool result = manager.Login(user); 29 if (result) 30 { 31 Response.Redirect("list.aspx"); 32 } 33 else 34 { 35 Response.Write("登录失败,请输入正确的用户名和密码"); 36 } 37 38 39 } 40 }
显示界面代码:
显示界面相关说明:
当点击修改时图片如下:
点击修改时通过table获得table中的行数,从而改变行数中相应的内容,相关代码在javascript中
参数传值通过URL获取
1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="list.aspx.cs" Inherits="list" %> 2 3 <%@ Import Namespace="testDAO.Library" %> 4 5 6 "http://www.w3.org/1999/xhtml"> 7 "server"> 8 "Content-Type" content="text/html; charset=utf-8"/> 946 65 6610 11 12
list.aspx.cs代码只有通过点击button按钮转向到注册页面,对其它功能并无影响
通过点击修改进行更新逻辑代码 UserUpdate.aspx.cs代码
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 using testDAO.Library; 8 9 public partial class userUpdate : System.Web.UI.Page 10 { 11 protected void Page_Load(object sender, EventArgs e) 12 { 13 14 User user = new User(); 15 16 user.UserName= Request.QueryString["userName"]; 17 user.UserLogin = Request.QueryString["userLogin"]; 18 user.UserPwd = Request.QueryString["userPwd"]; 19 UserManager manager = new UserManager(); 20 bool result = manager.UpdateUser(user); 21 if (result) 22 { 23 Response.Redirect("list.aspx"); 24 } 25 else 26 { 27 Response.Write("修改失败"); 28 } 29 30 31 } 32 }
通过点击删除进行删除逻辑代码 userDelete.aspx.cs代码
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 using testDAO.Library; 8 public partial class userDelete : System.Web.UI.Page 9 { 10 protected void Page_Load(object sender, EventArgs e) 11 { 12 User user = new User(); 13 14 user.UserLogin = Request.QueryString["userLogin"]; 15 16 17 UserManager manager = new UserManager(); 18 bool result = manager.DeleteUser(user); 19 if (result) 20 { 21 Response.Redirect("list.aspx"); 22 } 23 else 24 { 25 Response.Write("删除失败"); 26 } 27 28 } 29 }