📄 login.cs
字号:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Text;
using System.Security.Cryptography;
namespace DBUtils
{
/// <summary>
/// 该类所有的函数都是为模块“登录”提供操作数据库功能的。
/// 所涉及的知识点可以参阅课本第九章到第十一章。
/// </summary>
public class Login
{
//该函数将查询员工的登录密码。
//参数 strLoginName:员工的登录名。
//参数 arPword:保存返回的登录密码。
//返回值:DBResult.Success 或 DBResult.Failed,表示操作成功与否。
public static int GetSavedPassword(string strLoginName ,ref byte[] arPword )
{
// 创建连接数据库的 Connection 对象。
SqlConnection cn = new SqlConnection(DBConnection.ConnectionString);
SqlCommand cmd = new SqlCommand("spwebGetEmpPassword", cn);
// 设置该 Command 执行的是一个存储过程
cmd.CommandType = CommandType.StoredProcedure;
//为存储过程添加参数。
SqlParameter paramLoginName = new SqlParameter("@LoginName", SqlDbType.Char, 20);
paramLoginName.Value = strLoginName;
cmd.Parameters.Add(paramLoginName);
//为存储过程添加参数,注意该参数为输出类型。
SqlParameter paramPassword = new SqlParameter("@Pword", SqlDbType.Binary, 20);
paramPassword.Direction = ParameterDirection.Output;
cmd.Parameters.Add(paramPassword);
// 为存储过程添加返回参数,该参数的值如果为 0 则表示数据库操作失败,非 0 则为成功。
SqlParameter paramReturn = new SqlParameter("@ReturnValue", SqlDbType.Int);
paramReturn.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(paramReturn);
int iRetValue = (int)DBResult.Success;
try
{
// 打开数据库连接,执行对数据库的操作。注意操作数据库会引发异常。
cn.Open();
// Command 对象的 ExecuteNonQuery 方法用来执行不返回记录集的 SQL 语句或存储过程。
cmd.ExecuteNonQuery();
if ((int)paramReturn.Value == 1)
{
//如果返回参数的值为 1,则标识数据库操作成功。
arPword = (byte[])paramPassword.Value;
}
else
{
//否则标识数据库操作失败。
iRetValue = (int)DBResult.Failed;
}
}
catch ( Exception e)
{
// 产生异常,则对 iRetValue 赋值标志数据库操作失败。
iRetValue = (int)DBResult.Failed;
}
finally
{
// 关闭数据库连接,以节省系统资源。
if (cn.State == ConnectionState.Open)
{
cn.Close();
}
}
return iRetValue;
}
//该函数将查询员工的员工编号。
//参数 strLoginName:员工的登录名。
//参数 iEmpID:保存返回的员工编号。
//返回值:DBResult.Success 或 DBResult.Failed,表示操作成功与否。
public static int GetEmployeeID(string strLoginName, ref int iEmpID )
{
// 创建连接数据库的 Connection 对象。
SqlConnection cn = new SqlConnection(DBConnection.ConnectionString);
SqlCommand cmd = new SqlCommand("spwebGetEmployeeID", cn);
// 设置该 Command 执行的是一个存储过程
cmd.CommandType = CommandType.StoredProcedure;
//为存储过程添加参数。
SqlParameter paramLoginName = new SqlParameter("@LoginName", SqlDbType.NChar, 20);
paramLoginName.Value = strLoginName;
cmd.Parameters.Add(paramLoginName);
//为存储过程添加参数,注意该参数为输出类型。
SqlParameter paramEmpID = new SqlParameter("@EmpID", SqlDbType.Int);
paramEmpID.Direction = ParameterDirection.Output;
cmd.Parameters.Add(paramEmpID);
// 为存储过程添加返回参数,该参数的值如果为 0 则表示数据库操作失败,非 0 则为成功。
SqlParameter paramReturn = new SqlParameter("@ReturnValue", SqlDbType.Int);
paramReturn.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(paramReturn);
int iRetValue = (int)DBResult.Success;
try
{
// 打开数据库连接,执行对数据库的操作。注意操作数据库会引发异常。
cn.Open();
// Command 对象的 ExecuteNonQuery 方法用来执行不返回记录集的 SQL 语句或存储过程。
cmd.ExecuteNonQuery();
}
catch ( Exception e)
{
// 产生异常,则对 iRetValue 赋值标志数据库操作失败。
iRetValue = (int)DBResult.Failed;
}
finally
{
// 关闭数据库连接,以节省系统资源。
if( cn.State == ConnectionState.Open )
{
cn.Close();
}
}
if ((int)paramReturn.Value == 1 )
{
//如果返回参数的值为 1,则标识数据库操作成功。
iEmpID =Int32.Parse ( paramEmpID.Value.ToString().Trim()) ;
}
else
{
//否则标识数据库操作失败。
iRetValue = (int)DBResult.Failed;
}
return iRetValue;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -