一、登录模块
这是几乎所有信息类型的网站必备的模块,之前也写过用ajax登录。这边没有这个需求,就用简单的方法实现。
首先建立数据表,表结构如下:
CREATE TABLE [dbo].[Login](
[id] [int] IDENTITY(1,1) NOT NULL,
[username] [varchar](20) NULL,
[userpassword] [varchar](20) NULL
)
id为标志,username为用户名,userpassword为用户密码。
然后打造Model层:
新建IDBHelper.cs接口,代码如下:
using System;
using System.Data.Common;
using System.Data;
namespace SqlServerDAL
{
interface IDBHelper
{
/// <summary>
/// 执行 Transact-SQL 语句并返回受影响的行数。
/// </summary>
int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
/// <summary>
/// 在事务中执行 Transact-SQL 语句并返回受影响的行数。
/// </summary>
int ExecuteNonQuery(DbTransaction trans, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
/// <summary>
/// 在事务中执行查询,返回DataSet
/// </summary>
DataSet ExecuteQuery(DbTransaction trans, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
/// <summary>
/// 执行查询,返回DataSet
/// </summary>
DataSet ExecuteQuery(string connectionString, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
/// <summary>
/// 在事务中执行查询,返回DataReader
/// </summary>
DbDataReader ExecuteReader(DbTransaction trans, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
/// <summary>
/// 执行查询,返回DataReader
/// </summary>
DbDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
/// <summary>
/// 在事务中执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。
/// </summary>
object ExecuteScalar(DbTransaction trans, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
/// <summary>
/// 执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。
/// </summary>
object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
/// <summary>
/// 分页获取数据
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <param name="tblName">表名</param>
/// <param name="fldName">字段名</param>
/// <param name="pageSize">页大小</param>
/// <param name="pageIndex">第几页</param>
/// <param name="fldSort">排序字段</param>
/// <param name="fldDir">升序{False}/降序(True)</param>
/// <param name="condition">条件(不需要where)</param>
DbDataReader GetPageList(string connectionString, string tblName, int pageSize, int pageIndex, string fldSort, bool fldDir, string condition);
/// <summary>
/// 得到数据条数
/// </summary>
/// <param name="tblName">表名</param>
/// <param name="condition">条件(不需要where)</param>
/// <returns>数据条数</returns>
int GetCount(string connectionString, string tblName, string condition);
}
}
然后实现这个接口:类DBHelper,代码见附件
其中类的构造函数中指定使用的数据库服务器名及用户名和密码。
当然,也要提供 SqlHelper.cs类,附下载地址
接下来就是实现BLL,业务逻辑层的Login,代码如下:
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Web;
namespace BLL
{
/// <summary>
/// 业务逻辑类 Login
/// </summary>
public class Login
{
private readonly SqlServerDAL.Login dal = new SqlServerDAL.Login();
public Login()
{ }
/// <summary>
/// 增加一条数据
/// </summary>
public void Add(Model.Login model)
{
dal.Add(model);
}
/// <summary>
/// 更新一条数据
/// </summary>
public void Update(Model.Login model)
{
dal.Update(model);
}
/// <summary>
/// 删除一条数据
/// </summary>
public void Delete(int id)
{
dal.Delete(id);
}
/// <summary>
/// 是否存在该记录
/// </summary>
public bool Exists(string username)
{
return dal.Exists(username);
}
/// <summary>
/// 得到一个对象实体
/// </summary>
public Model.Login GetModel(string username)
{
return dal.GetModel(username);
}
/// <summary>
/// 获得泛型数据列表
/// </summary>
public List<Model.Login> GetList(out long count)
{
return dal.GetList(out count);
}
}
}
本文导航
- 第1页: 首页
- 第2页: 登录模块
- 第3页: 实现website里面的登录模块