工具:VS2012

数据库:SQL server

简单说明:根据老师上课给的代码,进行了简单的改正适用于VS2012环境,包括注册、登录、查询、修改、删除功能,多数参考了网上的代码

百度云源代码连接testDAO:http://pan.baidu.com/s/1c0CTRgs

遇见的问题:

1、字符文本中字符太多: 在html中用的<a href=" ">,在.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. /// <summary>
  8. /// DBHelper 的摘要说明
  9. /// </summary>
  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. connection.Close();
  43.  
  44. result = true;
  45. }
  46. catch (Exception e)
  47. {
  48. throw e;
  49. }
  50.  
  51. return result;
  52. }
  53.  
  54. }
  55. }

定义User类封装用户信息  User.cs

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5.  
  6. /// <summary>
  7. /// User 的摘要说明
  8. /// </summary>
  9. namespace testDAO.Library
  10. {
  11. public class User
  12. {
  13. private String userName = "";
  14. private String userLogin = "";
  15. private String userPwd = "";
  16.  
  17. public String UserName
  18. {
  19. get
  20. {
  21. return userName;
  22. }
  23. set
  24. {
  25. userName = value;
  26. }
  27. }
  28.  
  29. public String UserLogin
  30. {
  31. get
  32. {
  33. return userLogin;
  34. }
  35. set
  36. {
  37. userLogin = value;
  38. }
  39. }
  40.  
  41. public String UserPwd
  42. {
  43. get
  44. {
  45. return userPwd;
  46. }
  47. set
  48. {
  49. userPwd = value;
  50. }
  51. }
  52. }
  53. }

 采用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. /// <summary>
  8. /// UserService 的摘要说明
  9. /// </summary>
  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();
  44. result.UserLogin = reader.GetString();
  45. result.UserPwd = reader.GetString();
  46.  
  47. }
  48. else
  49. {
  50. return null;
  51. }
  52.  
  53. return result;
  54. }
  55.  
  56. public List<User> 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<User> list = new List<User>();
  71. while (reader.Read())
  72. {
  73. User item = new User();
  74.  
  75. item.UserName = reader.GetString();
  76. item.UserLogin = reader.GetString();
  77. item.UserPwd = reader.GetString();
  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. /// <summary>
  7. /// UserManager 的摘要说明
  8. /// </summary>
  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<User> 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

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="register.aspx.cs" Inherits="register" %>
  2.  
  3. <!DOCTYPE html>
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <head runat="server">
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  7. <title></title>
  8. </head>
  9. <body>
  10. <form id="form1" runat="server">
  11.  
  12. <div>
  13. <br />
  14. <asp:Label ID="Label1" runat="server" Text="姓名:"></asp:Label>
  15. <asp:TextBox ID="nameText" runat="server"></asp:TextBox>
  16. <br />
  17. <br />
  18. <asp:Label ID="Label2" runat="server" Text="帐号:"></asp:Label>
  19. <asp:TextBox ID="loginText" runat="server"></asp:TextBox>
  20. <br />
  21. <br />
  22. <asp:Label ID="Label3" runat="server" Text="密码:"></asp:Label>
  23. <asp:TextBox ID="pwdText" runat="server"></asp:TextBox>
  24. <br />
  25. <br />
  26. <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="注册" />
  27. <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="转向登录" />
  28. </div>
  29. </form>
  30. </body>
  31. </html>

注册界面逻辑代码 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. }

regeister.aspx.cs

登录界面代码 login.aspx

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="login" %>
  2.  
  3. <!DOCTYPE html>
  4.  
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head runat="server">
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  8. <title></title>
  9. </head>
  10. <body>
  11. <form id="form1" runat="server">
  12. <div>
  13. <br />
  14. <asp:Label ID="Label1" runat="server" Text="帐号:"></asp:Label>
  15. <asp:TextBox ID="loginText" runat="server"></asp:TextBox>
  16. <br />
  17. <br />
  18. <asp:Label ID="Label2" runat="server" Text="密码:"></asp:Label>
  19. <asp:TextBox ID="pwdText" runat="server"></asp:TextBox>
  20. <br />
  21. <br />
  22. <asp:Button ID="loginButton" runat="server" onclick="loginButton_Click"
  23. Text="登录" />
  24. <asp:Button ID="Button1" runat="server" Text="转向注册" OnClick="Button1_Click" />
  25. </div>
  26. </form>
  27. </body>
  28. </html>

login.aspx

 

登录界面逻辑代码 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. }

login.aspx.cs

显示界面代码:

显示界面相关说明:

显示界面图片是这样:

当点击修改时图片如下:

点击修改时通过table获得table中的行数,从而改变行数中相应的内容,相关代码在javascript中

参数传值通过URL获取

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="list.aspx.cs" Inherits="list" %>
  2.  
  3. <%@ Import Namespace="testDAO.Library" %>
  4. <!DOCTYPE html>
  5.  
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head runat="server">
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  9. <title></title>
  10. </head>
  11. <body>
  12. <form id="form1" runat="server">
  13. <div>
  14. <table id="test" width="" align="center" border = "" cellpadding="" cellspacing="" bordercolordark="#808080" bordercolorlight="#ffffff" >
  15. <tr>
  16. <td align="center">序号</td>
  17. <td align="center">姓名</td>
  18. <td align="center">帐号</td>
  19. <td align="center">密码</td>
  20. <td align="center">修改</td>
  21. <td align="center">删除</td>
  22. </tr>
  23. <%
  24. UserManager manager = new UserManager();
  25. List<User> list = manager.GetAllUsers();
  26.  
  27. for (int i = ; i < list.Count; i++)
  28. {
  29. Response.Write("<tr >");
  30. Response.Write("<td align='center'>" + i + "</td>");
  31. Response.Write("<td align='center'>" + list[i].UserName + "</td>");
  32. Response.Write("<td align='center' id='loginText'>" + list[i].UserLogin + "</td>");
  33. Response.Write("<td align='center'>" + list[i].UserPwd + "</td>");
  34.  
  35. Response.Write("<td align='center'><input type='Button' value='修改' onclick='test1("+i+")' >修改</td>");
  36. Response.Write("<td align='center'><a href='userDelete.aspx?userLogin=" + list[i].UserLogin + "'>删除</a></td>");
  37.  
  38. Response.Write("</tr>");
  39. }
  40. %>
  41. </table>
  42. <asp:Button ID="button" runat="server" Text="转向注册" OnClick="Button1_Click" />
  43.  
  44. </div>
  45. </form>
  46. <script type="text/javascript">
  47.  
  48. function test1(j)
  49. {
  50. var table = document.getElementById("test");
  51. table.rows[j + ].cells[].innerHTML = "<input type='text' id='nameText' >";
  52. table.rows[j + ].cells[].innerHTML = "<input type='text' id='pwdText' >";
  53. table.rows[j + ].cells[].innerHTML="<input type='button' value='确定' onclick='tiaozhuan("+j+")' >"
  54.  
  55. }
  56. function tiaozhuan(i) {
  57. var table = document.getElementById("test");
  58. var userName=document.getElementById("nameText").value;
  59. var userPwd = document.getElementById("pwdText").value;
  60. var userLogin=table.rows[i + ].cells[].innerHTML;
  61.  
  62. location.href="userUpdate.aspx?userName="+ userName+"&userPwd="+userPwd+"&userLogin="+userLogin+" ";
  63. }
  64. </script>
  65. </body>
  66. </html>

list.aspx

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. }

通过点击删除进行删除逻辑代码 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. UserManager manager = new UserManager();
  17. bool result = manager.DeleteUser(user);
  18. if (result)
  19. {
  20. Response.Redirect("list.aspx");
  21. }
  22. else
  23. {
  24. Response.Write("删除失败");
  25. }
  26.  
  27. }
  28. }

ASP.net+SQL server2008简单的数据库增删改查 VS2012的更多相关文章

  1. SQL 的简单命令(增删改查)

    数据库操作的资料: 链接: https://pan.baidu.com/s/1dFl3q6X 密码: nvy7-- 增:insert into 表名 (列名) values (值) ,'dew') - ...

  2. 通过Sql语句控制SQLite数据库增删改查

    person类属性有Intenger id,String name,Intenger  age,相应的构造方法和set get方法. package com.xh.tx.dao; import jav ...

  3. WindowsPhone8 数据库增删改查

    今天第一次在博客园发表文章,如果有的地方写的不对,还请大家指出! 1.这就是一个简单wp8数据库增删改查 1.创建数据表Person [Table] public class Person : INo ...

  4. Asp.Net操作MySql数据库增删改查

    Asp.Net操作MySql数据库增删改查,话不多说直接步入正题.git源码地址:https://git.oschina.net/gxiaopan/NetMySql.git  1.安装MySQL数据库 ...

  5. MyBatis学习(二)、SQL语句映射文件(2)增删改查、参数、缓存

    二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id=" ...

  6. Yii2.0高级框架数据库增删改查的一些操作(转)

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

  7. Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

  8. MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存

    目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...

  9. Python实现mysql数据库增删改查

    利用python操作mysql数据库用法简单,环境配置容易,本文将实现对库增.删.改.查的简易封装!   1. 环境配置 安装第三方包  ,导入模块 mysql.connector  pip inst ...

随机推荐

  1. Spring项目的建立-移植流程(非入门教程)

    Creat by Zhou yong in 2016/4/15/19:00 jar包 java 1.7 tomcat的两个jar包 2个文件上传的jar包 json支持的jar包 hibernate- ...

  2. XMLHttpRequest发送请求

    *open(method,url,async) *send(string)//在使用get请求的时候,是没有主体的,所有的信息都会拼在url当中,所以使用send的时候括号里的string可以为空!如 ...

  3. SQLserver 连接+开窗函数+视图+事务

    今天学习SQLserver 连接以及开窗函数..加油! 1.复习:查询(检索)->筛选列->筛选行:distinct top where 运算符与关键字:比较运算符,逻辑运算符,betwe ...

  4. ASP.NET 后台下载文件方法

    void DownLoadFile(string fileName) { string filePath = Server.MapPath(fileName);//路径 //以字符流的形式下载文件 F ...

  5. SQL Server事务的存储过程

    在酒店管理系统开发中,我们会创建房间表和房间类型表(房型表)这两个表,如下图所示: 房型表:RoomType 房间表:Room 首先这两个表的关系:Room是从表,RoomType是主表,两表有主外键 ...

  6. .NET winform 的keypress事件中判断当用户按下的是哪个键

    keys是按键的枚举类型 private void txtPropertyValue_KeyPress(object sender, KeyPressEventArgs e) { if ((Keys) ...

  7. parentViewController

    获取创建自己的上一级视图 self.parentViewController 并且强制转换

  8. 自定义带弹性效果的pageControl

    分三部分实现,在drawrect方法里画出灰色背景,根据pageCount创建对应个数的dotView放置在对应位置,并隐藏,创建一个CAShapeView类型的layer,根据scrollView的 ...

  9. LA 3662 Another Minimum Spanning Tree (曼哈顿距离最小生成树 模板)

    题目大意: 曼哈顿最小距离生成树 算法讨论: 同上. 这回的模板真的准了. #include <iostream> #include <cstring> #include &l ...

  10. (转) 学习C++ -> 向量(vector)

      vector是向量类型,它是一种对象实体,具有值,所以可以看作是变量. 它可以容纳许多其他类型的相同实体,如若干个整数,所以称其为容器.   vector类与一般的Array类的区别在于:   1 ...