工具: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类,封装常用的方法

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient; /// <summary>
/// DBHelper 的摘要说明
/// </summary>
namespace testDAO.Library
{
public class DBHelper
{//server=.;Trusted_Connection=SSPI;database=easylife
private String connectionString = "server=.;database=easylife;uid=sa;pwd=root"; public SqlDataReader ExecuteReader(String sql)
{
SqlConnection connection = new SqlConnection(connectionString);
connection.Open(); SqlCommand command = new SqlCommand(sql,connection); SqlDataReader result = command.ExecuteReader(); return result;
} public bool ExecuteCommand(String sql)
{
bool result = false; try
{
SqlConnection connection = new SqlConnection(connectionString);
connection.Open(); SqlCommand command = new SqlCommand(sql,connection);
//command.Connection = connection;
//command.CommandText = sql;
command.ExecuteNonQuery(); connection.Close(); result = true;
}
catch (Exception e)
{
throw e;
} return result;
} }
}

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; /// <summary>
/// User 的摘要说明
/// </summary>
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

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; using System.Data.SqlClient;
/// <summary>
/// UserService 的摘要说明
/// </summary>
namespace testDAO.Library
{
public class UserService
{
public bool AddUser(User user)
{
bool result = false;
String sql = ""; sql = "insert into table_user (userName,userLogin,userPwd)values(";
sql += "'" + user.UserName + "',";
sql += "'" + user.UserLogin + "',";
sql += "'" + user.UserPwd + "'";
sql += ")"; DBHelper helper = new DBHelper();
result = helper.ExecuteCommand(sql);
return result; } public User GetUserByLogin(User user)
{
String sql = ""; sql = "select * from table_user where userLogin='" + user.UserLogin + "'"; DBHelper helper = new DBHelper();
SqlDataReader reader = helper.ExecuteReader(sql);
User result = new User();
if (reader.Read())
{ result.UserName = reader.GetString();
result.UserLogin = reader.GetString();
result.UserPwd = reader.GetString(); }
else
{
return null;
} return result;
} public List<User> GetAllUsers()
{
String sql = ""; sql = "select * from table_user"; DBHelper helper = new DBHelper();
SqlDataReader reader = helper.ExecuteReader(sql); if (!reader.HasRows)
{
return null;
} List<User> list = new List<User>();
while (reader.Read())
{
User item = new User(); item.UserName = reader.GetString();
item.UserLogin = reader.GetString();
item.UserPwd = reader.GetString(); list.Add(item);
} return list;
} public bool DeleteUsers(String i)
{
bool result = false;
String sql = "";
sql = "delete from table_user where userLogin ='"+ i+" '" ;
DBHelper helper = new DBHelper();
result = helper.ExecuteCommand(sql);
return result;
} public bool UpdateUsers(User user)
{
bool result = false;
String sql = "";
sql = "update table_user set userName= '" + user.UserName + "',userPwd='" + user.UserPwd + " ' where userlogin='" + user.UserLogin + " '";
// update table_user set userName='1',userPwd='1' where userLogin='5'
DBHelper helper = new DBHelper();
result = helper.ExecuteCommand(sql);
return result;
} }
}

业务逻辑层UserManager.cs,是表示层与数据访问层的桥梁 ,用于完成逻辑判断、业务处理、数据传递等操作。

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; /// <summary>
/// UserManager 的摘要说明
/// </summary>
namespace testDAO.Library
{
public class UserManager
{
public bool AddUser(User user)
{
UserService service = new UserService();
User temp = service.GetUserByLogin(user); if (temp != null)
{
return false;
} bool result = service.AddUser(user);
return result;
} public bool Login(User user)
{
bool result = false; UserService service = new UserService(); User temp = service.GetUserByLogin(user);
if (temp == null)
{
result = false;
}
else if (user.UserPwd.Equals(temp.UserPwd))
{
result = true;
} return result;
} public List<User> GetAllUsers()
{
UserService service = new UserService();
return service.GetAllUsers();
}
public bool DeleteUser(User user)
{
UserService service = new UserService(); bool result = service.DeleteUsers(user.UserLogin);
return result; } public bool UpdateUser(User user)
{
UserService service = new UserService();
bool result = service.UpdateUsers(user);
return result;
}
}
}

注册界面代码regeister.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="register.aspx.cs" Inherits="register" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server"> <div>
<br />
<asp:Label ID="Label1" runat="server" Text="姓名:"></asp:Label>
<asp:TextBox ID="nameText" runat="server"></asp:TextBox>
<br />
<br />
<asp:Label ID="Label2" runat="server" Text="帐号:"></asp:Label>
<asp:TextBox ID="loginText" runat="server"></asp:TextBox>
<br />
<br />
<asp:Label ID="Label3" runat="server" Text="密码:"></asp:Label>
<asp:TextBox ID="pwdText" runat="server"></asp:TextBox>
<br />
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="注册" />
<asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="转向登录" />
</div>
</form>
</body>
</html>

注册界面逻辑代码 regeister.aspx.cs

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using testDAO.Library; public partial class register : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ } public void CreateTable()
{
String connectionString = "server=.;Trusted_Connection=SSPI;database=easylife";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.ExecuteNonQuery();
connection.Close();
}
protected void Button1_Click(object sender, EventArgs e)
{
String userName = nameText.Text;
String userLogin = loginText.Text;
String userPwd = pwdText.Text; User user = new User();
user.UserName = userName;
user.UserLogin = userLogin;
user.UserPwd = userPwd; bool result = false;
UserManager manager = new UserManager();
result = manager.AddUser(user);
Response.Write(result);
if (result)
{
Response.Write("注册成功");
}
else
{
Response.Write("注册失败");
}
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("login.aspx");
}
}

regeister.aspx.cs

登录界面代码 login.aspx

 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="login" %>

 <!DOCTYPE html>

 <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<br />
<asp:Label ID="Label1" runat="server" Text="帐号:"></asp:Label>
<asp:TextBox ID="loginText" runat="server"></asp:TextBox>
<br />
<br />
<asp:Label ID="Label2" runat="server" Text="密码:"></asp:Label>
<asp:TextBox ID="pwdText" runat="server"></asp:TextBox>
<br />
<br />
<asp:Button ID="loginButton" runat="server" onclick="loginButton_Click"
Text="登录" />
<asp:Button ID="Button1" runat="server" Text="转向注册" OnClick="Button1_Click" />
</div>
</form>
</body>
</html>

login.aspx

 

登录界面逻辑代码 login.aspx.cs

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using testDAO.Library; public partial class login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("register.aspx");
} protected void loginButton_Click(object sender, EventArgs e)
{
User user = new User(); user.UserLogin = loginText.Text;
user.UserPwd = pwdText.Text; UserManager manager = new UserManager();
bool result = manager.Login(user);
if (result)
{
Response.Redirect("list.aspx");
}
else
{
Response.Write("登录失败,请输入正确的用户名和密码");
} }
}

login.aspx.cs

显示界面代码:

显示界面相关说明:

显示界面图片是这样:

当点击修改时图片如下:

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

参数传值通过URL获取

 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="list.aspx.cs" Inherits="list" %>

 <%@ Import Namespace="testDAO.Library" %>
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table id="test" width="" align="center" border = "" cellpadding="" cellspacing="" bordercolordark="#808080" bordercolorlight="#ffffff" >
<tr>
<td align="center">序号</td>
<td align="center">姓名</td>
<td align="center">帐号</td>
<td align="center">密码</td>
<td align="center">修改</td>
<td align="center">删除</td>
</tr>
<%
UserManager manager = new UserManager();
List<User> list = manager.GetAllUsers(); for (int i = ; i < list.Count; i++)
{
Response.Write("<tr >");
Response.Write("<td align='center'>" + i + "</td>");
Response.Write("<td align='center'>" + list[i].UserName + "</td>");
Response.Write("<td align='center' id='loginText'>" + list[i].UserLogin + "</td>");
Response.Write("<td align='center'>" + list[i].UserPwd + "</td>"); Response.Write("<td align='center'><input type='Button' value='修改' onclick='test1("+i+")' >修改</td>");
Response.Write("<td align='center'><a href='userDelete.aspx?userLogin=" + list[i].UserLogin + "'>删除</a></td>"); Response.Write("</tr>");
}
%>
</table>
<asp:Button ID="button" runat="server" Text="转向注册" OnClick="Button1_Click" /> </div>
</form>
<script type="text/javascript"> function test1(j)
{
var table = document.getElementById("test");
table.rows[j + ].cells[].innerHTML = "<input type='text' id='nameText' >";
table.rows[j + ].cells[].innerHTML = "<input type='text' id='pwdText' >";
table.rows[j + ].cells[].innerHTML="<input type='button' value='确定' onclick='tiaozhuan("+j+")' >" }
function tiaozhuan(i) {
var table = document.getElementById("test");
var userName=document.getElementById("nameText").value;
var userPwd = document.getElementById("pwdText").value;
var userLogin=table.rows[i + ].cells[].innerHTML; location.href="userUpdate.aspx?userName="+ userName+"&userPwd="+userPwd+"&userLogin="+userLogin+" ";
}
</script>
</body>
</html>

list.aspx

list.aspx.cs代码只有通过点击button按钮转向到注册页面,对其它功能并无影响

通过点击修改进行更新逻辑代码 UserUpdate.aspx.cs代码

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using testDAO.Library; public partial class userUpdate : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ User user = new User(); user.UserName= Request.QueryString["userName"];
user.UserLogin = Request.QueryString["userLogin"];
user.UserPwd = Request.QueryString["userPwd"];
UserManager manager = new UserManager();
bool result = manager.UpdateUser(user);
if (result)
{
Response.Redirect("list.aspx");
}
else
{
Response.Write("修改失败");
} }
}

通过点击删除进行删除逻辑代码 userDelete.aspx.cs代码

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using testDAO.Library;
public partial class userDelete : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
User user = new User(); user.UserLogin = Request.QueryString["userLogin"]; UserManager manager = new UserManager();
bool result = manager.DeleteUser(user);
if (result)
{
Response.Redirect("list.aspx");
}
else
{
Response.Write("删除失败");
} }
}

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. Sublime 学习记录(二) package control 组件

    i.          按Ctrl + ` 调出console (如果有QQ输入法会有冲突需要关闭热键) ii.          粘贴以下代码到底部命令行并运行 import urllib.requ ...

  2. Android-------- AlertDialog中EditText无法弹出输入法的解决

    文章转自:http://21jhf.iteye.com/blog/2007375: 如果AlertDialog中有编辑录入框(newMainLayout里面动态创建了EditText控件),show后 ...

  3. contentSize、contentInset和contentOffset

    contentSize.contentInset和contentOffset 是 scrollView三个基本的属性. contentSize: The size of the content vie ...

  4. HDU 5735 - Born Slippy

    题意: 一棵 n 个节点的根树,i 节点权重 wi 对每一个节点s,找到这样一个长 m 的标号序列 v : 1. vi是vi-1 的祖先 2. f[s] = w[vi] + ∑(i=2, m) (w[ ...

  5. Dom兼容问题记录汇总

    DOM方法兼容表   Chrome FireFox IE6 IE7 IE8 IE9 IE10 innerText 支持 不支持(改成了textContent) 支持 支持 支持 支持 支持 inner ...

  6. java设计模式之Proxy(代理模式)

    java设计模式之Proxy(代理模式) 2008-03-25 20:30 227人阅读 评论(0) 收藏 举报 设计模式javaauthorizationpermissionsstringclass ...

  7. Palindrome(POJ 1159 DP)

      Palindrome Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 58168   Accepted: 20180 De ...

  8. mysqlbackup 备份失败的分析

    现象: 1.从mysqlbackup 的日志上来看是它一直处于state: Waiting for locks; 2.从mysql 层面show processlist 上看它的处于waiting f ...

  9. WEB.xml配置文件解读

    1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...

  10. [原]bochs+dos6.22汇编环境

    1.下载安装bochs 下载MS-DOS http://files.cnblogs.com/allbymyself/DOS6.22.rar 下载Masm5.0 2.bochs配置 1)安装目录下的bx ...