图书管理系统要求
图书管理系统是一个较小的项目,现在我们使用asp.net技术对其一部分内容进行实现。需要用到的比较重要的知识是如何连接数据库,这里我们使用了连接池机制。
本部分要实现的内容是对于读者的操作,增添改查这些基本要求必须具有,其次,要将数据库中存在的内容显示给读者。
设计
使用了多个页面,项目的可操作性得到了较大的提升,用户体验也得到了提升。页面分为登陆页面index.aspx,注册页面register.aspx,操作界面operator.aspx,添加读者页面add_reader.aspx,删除读者页面delete_reader.aspx,查询读者页面select_user.aspx和显示所有信息页面show_allinfo.aspx。每个页面都有其相应的.cs文件。
环境
IDE为VisualStudio2012旗舰版。
页面具体设计代码:
index.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="index" %>
<!--
应该注意的是,还没有获取到链接字符串(使用的是内存池)
其次,只需要建立一个表叫做reader,有两个字段,分别是username和password
最后,链接字符串去Web.config中设置
应该写一个公共的返回链接,这样子可以在做玩操作的时候,让用户返回到操作界面或者是推出
-->
<!-- 还存在的问题
1.注册页面没有与用户输入的数据进行比对,如果已经存在这个用户,应该不允许注册,或者是找回密码
2.查询用户时,如果没有这个人,没有给出提示信息
3.重复添加相同用户时,没有提示信息
4.删除不存在的读者时,没有提示信息
-->
<!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>Login</title>
<style type="text/css">
.index_mainbody {
position:absolute;
left:400px;
top:180px;
}
.index_footer {
position:absolute;
left:800px;
top:500px;
}
</style>
</head>
<body>
<h2 style="font-size:larger;color:lightgreen"><i>图书管理系统登陆</i></h2><hr/>
<form id="form1" runat="server">
<div class="index_mainbody">
用户<asp:TextBox ID="username" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="用户名不能为空!" ControlToValidate="username"></asp:RequiredFieldValidator><br/><br/>
密码<asp:TextBox ID="password" runat="server" TextMode="Password"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="密码不能为空!" ControlToValidate="password"></asp:RequiredFieldValidator><br/><br/>
<asp:Button ID="Button1" runat="server" Text="登录" OnClick="Button1_Click" />
</div>
<div class="index_footer">
<a href="register.aspx">没有账号?申请一个</a>
</div>
</form>
</body>
</html>
index.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.Configuration;//用于数据库连接
using System.Data.SqlClient;
public partial class index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
//先看是否可以从数据库中查到用户输入的信息,如果可以,就让他登陆,否则,提示错误,回到登陆页面
String Username = username.Text;
String Password = password.Text;
//Response.Write(Username);
//Response.Write(Password);
String connect_str=ConfigurationManager.AppSettings["connect_str"];//获取链接字符串
SqlConnection connection = new SqlConnection(connect_str);//创建链接对象
SqlCommand command = new SqlCommand();
command.CommandText = "SELECT COUNT(*) FROM reader WHERE username='"+Username+"' AND password='"+Password+"'";
command.Connection = connection;
connection.Open();//链接数据库
int Num = (int)command.ExecuteScalar();//执行这个函数会返回符合查询要求的记录的数量
if (Num > 0)
{
Response.Redirect("operator.aspx");//如果存在这个记录,就可以重定向到操作界面
}
else {
Response.Redirect("index.aspx");
}
connection.Close();//关闭数据库
}
}
register.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>Register</title>
<style type="text/css">
.register_mainbody {
position:absolute;
left:400px;
top:180px;
}
</style>
</head>
<body>
<h2 style="font-size:larger;color:lightgreen">