📄 usersdb.cs
字号:
//-----------------------------------------------------------------------
//
// WebExpert.NET 1.0
//
// (c) 2003, www.AspCool.com. All rights reserved.
// ASP酷技术网 版权所有
//
// 该源码下载自:http://www.51aspx.com
// 邮箱:tim@aspcool.com
//
// 版权声明:本程序仅供学习使用,你也可以修改后在网站上使用,但使用时必
// 须保留ASP酷技术网(www.AspCool.com)的版权信息和链接。本程序随《ASP.NET
// 网站建设专家》一书赠送,未经作者同意,不得随意修改、传播。
//
// 描述:
// 此文件包含下面的类:
// UsersDB
//
// 作者: 王保健
// 时间: 2004-01-15
//
//------------------------------------------------------------------------
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace AspCool.WebExpert
{
public class UsersDB
{
# region 显示User内容
//---------------------------------------------------------------------
//
// GetUsers 方法
//
// GetUsers 方法返回所有包含所有User信息的DataSet。
//
//---------------------------------------------------------------------
private DataSet GetUsers()
{
// 创建一个数据库连接实例和命令对象。
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
SqlDataAdapter myCommand = new SqlDataAdapter("GetUsers", myConnection);
// 把命令对象的命令类型设置为存储过程。
myCommand.SelectCommand.CommandType = CommandType.StoredProcedure;
// 建立并填充一个DataSet。
DataSet myDataSet = new DataSet();
myCommand.Fill(myDataSet);
// 返回一个DataSet。
return myDataSet;
}
//---------------------------------------------------------------------
//
// CheckUser 方法
//
// CheckUser 方法用来检查这个用户名是否存在。
//
//---------------------------------------------------------------------
public bool CheckUser(string name)
{
// 创建一个数据库连接实例和命令对象。
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
SqlCommand myCommand = new SqlCommand("CheckUser", myConnection);
// 把命令对象的命令类型设置为存储过程。
myCommand.CommandType = CommandType.StoredProcedure;
SqlParameter parameterName = new SqlParameter("@name", SqlDbType.NVarChar,50);
parameterName.Value = name;
myCommand.Parameters.Add(parameterName);
// 执行命令。
myConnection.Open();
SqlDataReader reader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
if (reader.Read())
return true;
else
return false;
}
//---------------------------------------------------------------------
//
// GetSingleUser 方法
//
// GetSingleUser 方法是根据用户名或者这个用户的信息。
//
//---------------------------------------------------------------------
public SqlDataReader GetSingleUser(string name)
{
// 创建一个数据库连接实例和命令对象。
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
SqlCommand myCommand = new SqlCommand("GetSingleUserByName", myConnection);
// 把命令对象的命令类型设置为存储过程。
myCommand.CommandType = CommandType.StoredProcedure;
SqlParameter parameterName = new SqlParameter("@name", SqlDbType.NVarChar,50);
parameterName.Value = name;
myCommand.Parameters.Add(parameterName);
// 执行命令。
myConnection.Open();
SqlDataReader reader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
//---------------------------------------------------------------------
//
// GetUsersRecords 方法
//
// GetUsersRecords 方法是用来计算Users的总数。
//
//
//---------------------------------------------------------------------
public int GetUsersRecords()
{
// 创建一个数据库连接实例和命令对象。
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
SqlCommand myCommand = new SqlCommand("GetUsersRecords", myConnection);
// 把命令对象的命令类型设置为存储过程
myCommand.CommandType = CommandType.StoredProcedure;
// 执行命令。
myConnection.Open();
SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
return (int)result["co"];
}
//---------------------------------------------------------------------
//
// CurrentPageUsers 方法
//
// CurrentPageUsers 方法是用来从一个包含所有User的DataSet中返回一个只包含
// 当前页面的DataSet。
//
// 其中currentPage是指当前的页号,pageSize是指每页有多少条User,totalPage
// 用来返回总共有多少页User。
//
//---------------------------------------------------------------------
public DataSet CurrentPageUsers(int currentPage,int pageSize,out int totalPage,out int records)
{
// 创建一个数据库连接实例和命令对象。
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
SqlDataAdapter myCommand = new SqlDataAdapter("GetUsers", myConnection);
// 把命令对象的命令类型设置为存储过程。
myCommand.SelectCommand.CommandType = CommandType.StoredProcedure;
// 建立并填充一个DataSet。
DataSet allUsers = new DataSet();
myCommand.Fill(allUsers);
// 创建一个新的DataSet。
DataSet dsCurrentUsers = new DataSet();
// 计算所有User的条数。
records = allUsers.Tables[0].Rows.Count;
// 计算当前页第一条User的位置。
int startIndex = (currentPage-1)*pageSize;
// 计算当前页最后一条User的位置。
int endIndex = startIndex + pageSize;
// 计算User的页数。
totalPage = records/pageSize;
if (totalPage*pageSize<records)
{
totalPage++;
}
if (endIndex>records)
endIndex = records;
// 建立一个与allUsers数据结构完全一样的DataSet.
dsCurrentUsers = allUsers.Clone();
// 取得当前页的所有记录,并保存到新的DataSet中去。
for (int i=startIndex; i<endIndex; i++)
{
DataRow row = dsCurrentUsers.Tables[0].NewRow();
row.ItemArray = allUsers.Tables[0].Rows[i].ItemArray;
dsCurrentUsers.Tables[0].Rows.Add(row);
}
// 返回当前页的DataSet。
return dsCurrentUsers;
}
//---------------------------------------------------------------------
//
// ClickUsers 方法
//
// ClickUsers 是把Users数据表中被访问的User的点击次数增加一。
//
//---------------------------------------------------------------------
public void ClickUsers(int itemID)
{
// 创建一个数据库连接实例和命令对象。
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
SqlCommand myCommand = new SqlCommand("ClickUsers", myConnection);
// 把命令对象的命令类型设置为存储过程。
myCommand.CommandType = CommandType.StoredProcedure;
// 向存储过程中传递参数。
SqlParameter parameterItemID = new SqlParameter("@ItemID", SqlDbType.Int, 4);
parameterItemID.Value = itemID;
myCommand.Parameters.Add(parameterItemID);
// 打开数据库连接并执行命令。
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
//---------------------------------------------------------------------
//
// GetSingleUser 方法
//
// GetSingleUser 方法是用来返回一条包含某条User记录的所有信息的SqlDataReader.
// itemId为这条User记录的编号。
//
//---------------------------------------------------------------------
public SqlDataReader GetSingleUser(int itemId)
{
// 创建一个数据库连接实例和命令对象。
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
SqlCommand myCommand = new SqlCommand("GetSingleUser", myConnection);
// 把命令对象的命令类型设置为存储过程
myCommand.CommandType = CommandType.StoredProcedure;
// 向存储过程中传递参数。
SqlParameter parameterItemId = new SqlParameter("@ItemId", SqlDbType.Int, 4);
parameterItemId.Value = itemId;
myCommand.Parameters.Add(parameterItemId);
// 执行命令。
myConnection.Open();
SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
// 返回一个datareader。
return result;
}
# endregion
# region 增加、修改、删除User
//---------------------------------------------------------------------
//
// AddUser 方法
//
// AddUser 方法在Users表中增加一条新的User记录,此方法返回新增加的User的
// User编号。
//
//---------------------------------------------------------------------
public int AddUser(System.Int32 itemId,System.String password,System.String name,System.String email)
{
// 创建一个数据库连接实例和命令对象。
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
SqlCommand myCommand = new SqlCommand("AddUser", myConnection);
// 把命令对象的命令类型设置为存储过程。
myCommand.CommandType = CommandType.StoredProcedure;
// 向存储过程中传递参数。
SqlParameter parameterItemID = new SqlParameter("@ItemID", SqlDbType.Int, 4);
parameterItemID.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterItemID);
SqlParameter parameterName = new SqlParameter("@name", SqlDbType.NVarChar,50);
parameterName.Value = name;
myCommand.Parameters.Add(parameterName);
SqlParameter parameterPassword = new SqlParameter("@password", SqlDbType.NVarChar,20);
parameterPassword.Value = password;
myCommand.Parameters.Add(parameterPassword);
SqlParameter parameterEmail = new SqlParameter("@email", SqlDbType.NVarChar,100);
parameterEmail.Value = email;
myCommand.Parameters.Add(parameterEmail);
// 打开数据库连接并执行命令。
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
// 返回新增加的User的User编号。
return (int)parameterItemID.Value;
}
//---------------------------------------------------------------------
//
// UpdateUsers 方法
//
// UpdateUsers 是用来根据User编号来更新Users表中的一条User记录。
//
//---------------------------------------------------------------------
public void UpdateUser(System.Int32 itemId,System.String password,System.String name,System.String email)
{
// 创建一个数据库连接实例和命令对象。
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
SqlCommand myCommand = new SqlCommand("UpdateUser", myConnection);
// 向存储过程中传递参数。
myCommand.CommandType = CommandType.StoredProcedure;
// 向存储过程中传递参数。
SqlParameter parameterItemID = new SqlParameter("@ItemID", SqlDbType.Int, 4);
parameterItemID.Value = itemId;
myCommand.Parameters.Add(parameterItemID);
SqlParameter parameterName = new SqlParameter("@name", SqlDbType.NVarChar,50);
parameterName.Value = name;
myCommand.Parameters.Add(parameterName);
SqlParameter parameterPassword = new SqlParameter("@password", SqlDbType.NVarChar,20);
parameterPassword.Value = password;
myCommand.Parameters.Add(parameterPassword);
SqlParameter parameterEmail = new SqlParameter("@email", SqlDbType.NVarChar,100);
parameterEmail.Value = email;
myCommand.Parameters.Add(parameterEmail);
// 打开数据库连接并执行命令。
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
//---------------------------------------------------------------------
//
// DeleteUser 方法
//
// DeleteUser 方法是根据User编号删除一条User记录。
// itemID为要删除的User的编号。
//
//---------------------------------------------------------------------
public void DeleteUser(int itemID)
{
// 创建一个数据库连接实例和命令对象。
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
SqlCommand myCommand = new SqlCommand("DeleteUser", myConnection);
// 把命令对象的命令类型设置为存储过程。
myCommand.CommandType = CommandType.StoredProcedure;
// 向存储过程中传递参数。
SqlParameter parameterItemID = new SqlParameter("@ItemID", SqlDbType.Int, 4);
parameterItemID.Value = itemID;
myCommand.Parameters.Add(parameterItemID);
// 打开数据库连接并执行命令。
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
# endregion
#region 用户登陆
//---------------------------------------------------------------------
//
// UsersDB.UserLogin() 方法
//
// UserLogin方法是判断用户登陆的用户名和密码是否正确,如果正确则返回true,否则则返回false.
//
//---------------------------------------------------------------------
public string UserLogin(string Name,string Password)
{
// 创建一个数据库连接实例和命令对象。
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
SqlCommand myCommand = new SqlCommand("UserLogin", myConnection);
// 把命令对象的命令类型设置为存储过程。
myCommand.CommandType = CommandType.StoredProcedure;
SqlParameter parameterName = new SqlParameter("@name", SqlDbType.NVarChar,50);
parameterName.Value = Name;
myCommand.Parameters.Add(parameterName);
SqlParameter parameterPassword = new SqlParameter("@Password", SqlDbType.NVarChar,50);
parameterPassword.Value = Password;
myCommand.Parameters.Add(parameterPassword);
// 执行命令。
myConnection.Open();
SqlDataReader reader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
if (reader.Read())
return Name;
else
return string.Empty;
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -