工具: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. linux学习记录 常用指令大全

    1.开启关闭服务器(即时生效): service iptasbles start service iptasbles stop 2.在开启了防火墙时,做如下设置,开启相关端口, 修改/etc/sysc ...

  2. NET基础课--Linq第二讲

    这一讲,来说说集合.因为linq主要用于对数据源进行查询,集合是最常见的数据源. 集合 形式: 数组,列表List<T> Arraylist等. 特点: 可通过索引或键访问.可进行fore ...

  3. ASP.NET 导出Excel文档

    System.IO.TextWriter writer = new System.IO.StreamWriter(Server.MapPath("/provprice.xls"), ...

  4. [转]eclipse下编写android程序突然不会自动生成R.java文件和包的解决办法

    原网址 : http://www.cnblogs.com/zdz8207/archive/2012/11/30/eclipse-android-adt-update.html 网上解决方法主要有这几种 ...

  5. mysql设置字体

    如果在linux下重启mysql服务的时候出现Job failed to start,在window下重启失败,这是因为你安装了高版本的mysql(mysql5.5以上),在高版本对字符编码方式修改的 ...

  6. ActiveMQ持久化消息(转)

    ActiveMQ的另一个问题就是只要是软件就有可能挂掉,挂掉不可怕,怕的是挂掉之后把信息给丢了,所以本节分析一下几种持久化方式: 一.持久化为文件 ActiveMQ默认就支持这种方式,只要在发消息时设 ...

  7. Eclipse 整合cvs教程及遇到的问题

    今天看着视频教程学习cvs版本管理,现在很多企业开发或许都采用了版本管理器,因为这样可以更好的进行团退开发与代码管理,所以学习一种版本管理技术还是很重要的. 最原始的独立版本管理是由两部分组成的,一个 ...

  8. [转载]启用 VIM 中的 Python 自动补全及提示功能

    转载: http://zhongwei-leg.iteye.com/blog/941474 周围的同事不喜欢使用 VIM 写 Python 代码的原因之一就是,VIM 不能像 Visual Studi ...

  9. python成长之路第三篇(4)_作用域,递归,模块,内置模块(os,ConfigParser,hashlib),with文件操作

    打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.作用域 2.递归 3.模块介绍 4.内置模块-OS 5.内置模块-ConfigParser 6.内置模块-has ...

  10. path类和directory类对文件的路径或目录进行操作

    Path: 对文件或目录的路径进行操作(很方便)[只是对字符串的操作] 1.目录和文件操作的命名控件System.IO    2.string Path.ChangeExtension(string ...