📄 istoredbo.cs
字号:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace shopping
{
public class UserDetails
{
public String UserName;
public String Email;
public String Password;
public String Name;
public String IDCardNumber;
public String TelephoneNumber;
public String yb;
public String address;
}
public class wareDetails
{
public String ModelNumber;
public String ModelName;
public decimal UnitCost;
public String Description;
}
public class OrderDetails
{
public DateTime OrderDate;
public decimal OrderTotalCost;
public DataSet OrderItems;
}
/// <summary>
/// IStoreDBO 的摘要说明。
/// </summary>
public class IStoreDBO
{
public IStoreDBO(){}
public UserDetails GetUserDetails(String userID)
{
//创建数据库连接和命令的对象
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand myCommand = new SqlCommand("UserInfo", myConnection);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter parameterUserID = new SqlParameter("@UserID", SqlDbType.Int, 4);
parameterUserID.Value = Int32.Parse(userID);
myCommand.Parameters.Add(parameterUserID);
SqlParameter parameterUserName = new SqlParameter("@UserName", SqlDbType.VarChar, 50);
//指出该参数是存储过程的OUTPUT参数
parameterUserName.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterUserName);
SqlParameter parameterPassword = new SqlParameter("@Password", SqlDbType.VarChar, 50);
//指出该参数是存储过程的OUTPUT参数
parameterPassword.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterPassword);
SqlParameter parameterName = new SqlParameter("@Name", SqlDbType.VarChar, 50);
//指出该参数是存储过程的OUTPUT参数
parameterName.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterName);
SqlParameter parameterEmail = new SqlParameter("@Email", SqlDbType.VarChar, 50);
//指出该参数是存储过程的OUTPUT参数
parameterEmail.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterEmail);
SqlParameter parameterIDCardNumber = new SqlParameter("@card", SqlDbType.VarChar, 50);
//指出该参数是存储过程的OUTPUT参数
parameterIDCardNumber.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterIDCardNumber);
SqlParameter parameterTelephoneNumber = new SqlParameter("@tell", SqlDbType.VarChar, 50);
//指出该参数是存储过程的OUTPUT参数
parameterTelephoneNumber.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterTelephoneNumber);
SqlParameter parameteryb = new SqlParameter("@yb", SqlDbType.VarChar, 50);
//指出该参数是存储过程的OUTPUT参数
parameteryb.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameteryb);
SqlParameter parameteraddress = new SqlParameter("@address", SqlDbType.VarChar, 50);
//指出该参数是存储过程的OUTPUT参数
parameteraddress.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameteraddress);
//打开数据库连接
myConnection.Open();
//进行数据库操作
myCommand.ExecuteNonQuery();
//关闭数据库连接
myConnection.Close();
//产生UserDetails类的对象
UserDetails myUserDetails = new UserDetails();
//根据存储过程的输出参数的值对myUserDetails对象进行赋值
myUserDetails.UserName = (string)parameterUserName.Value;
myUserDetails.Password = (string)parameterPassword.Value;
myUserDetails.Name = (string)parameterName.Value;
myUserDetails.Email = (string)parameterEmail.Value;
myUserDetails.IDCardNumber = (string)parameterIDCardNumber.Value;
myUserDetails.TelephoneNumber = (string)parameterTelephoneNumber.Value;
myUserDetails.yb = (string)parameteryb.Value;
myUserDetails.address = (string)parameteraddress.Value;
return myUserDetails;
}
// AddUser方法往数据库里面插入一条新用户的记录。返回唯一的"UserId"号
public String AddUser(string UserName, string password, string fullName, string email, string IDCardNumber, string TelephoneNumber)
{
//创建数据库连接和命令的对象
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand myCommand = new SqlCommand("AddUser", myConnection);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter parameterUserName = new SqlParameter("@UserName", SqlDbType.VarChar, 50);
parameterUserName.Value = UserName;
myCommand.Parameters.Add(parameterUserName);
SqlParameter parameterPassword = new SqlParameter("@Password", SqlDbType.VarChar, 50);
//给存储过程添加参数
parameterPassword.Value = password;
myCommand.Parameters.Add(parameterPassword);
SqlParameter parameterName = new SqlParameter("@Name", SqlDbType.VarChar, 50);
//给存储过程添加参数
parameterName.Value = fullName;
myCommand.Parameters.Add(parameterName);
SqlParameter parameterEmail = new SqlParameter("@Email", SqlDbType.VarChar, 50);
//给存储过程添加参数
parameterEmail.Value = email;
myCommand.Parameters.Add(parameterEmail);
SqlParameter parameterIDCardNumber = new SqlParameter("@card", SqlDbType.VarChar, 50);
//给存储过程添加参数
parameterIDCardNumber.Value = IDCardNumber;
myCommand.Parameters.Add(parameterIDCardNumber);
SqlParameter parameterTelephoneNumber = new SqlParameter("@tell", SqlDbType.VarChar, 50);
//给存储过程添加参数
parameterTelephoneNumber.Value = TelephoneNumber;
myCommand.Parameters.Add(parameterTelephoneNumber);
SqlParameter parameteryb = new SqlParameter("@yb", SqlDbType.VarChar, 50);
//给存储过程添加参数
parameteryb.Value = ParameterDirection.Output;
myCommand.Parameters.Add(parameteryb);
SqlParameter parameteraddress = new SqlParameter("@address", SqlDbType.VarChar, 50);
//给存储过程添加参数
parameteryb.Value = ParameterDirection.Output;
myCommand.Parameters.Add(parameteraddress);
SqlParameter parameterUserID = new SqlParameter("@UserID", SqlDbType.Int, 4);
//指出该参数是存储过程的OUTPUT参数
parameterUserID.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterUserID);
try
{
//打开数据库连接
myConnection.Open();
//进行数据库操作
myCommand.ExecuteNonQuery();
//关闭数据库连接
myConnection.Close();
//使用存储过程的输出参数返回UserID
int UserId = (int)parameterUserID.Value;
return UserId.ToString();
}
catch
{
return String.Empty;
}
}
//UserLogin() 方法用于判断用户的登录是否合法
public String UserLogin(string username, string password)
{
//创建数据库连接和命令的对象
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand myCommand = new SqlCommand("UserLogin", myConnection);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter parameterUsername = new SqlParameter("@UserName", SqlDbType.NVarChar, 50);
parameterUsername.Value = username;
myCommand.Parameters.Add(parameterUsername);
//给存储过程添加参数
SqlParameter parameterPassword = new SqlParameter("@Password", SqlDbType.NVarChar, 50);
parameterPassword.Value = password;
myCommand.Parameters.Add(parameterPassword);
SqlParameter parameterUserID = new SqlParameter("@UserID", SqlDbType.Int, 4);
//指出该参数是存储过程的OUTPUT参数
parameterUserID.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterUserID);
//打开数据库连接
myConnection.Open();
//进行数据库操作
myCommand.ExecuteNonQuery();
//关闭数据库连接
myConnection.Close();
//使用存储过程的输出参数返回UserID并赋值给userId
int userId = (int)(parameterUserID.Value);
//判断userId的值,如果为零则说明登录失败,函数返回空字符串,
//反之把userId转换为字符串返回。
if (userId == 0)
{
return null;
}
else
{
return userId.ToString();
}
}
//Getwaretype() 方法获取货物类型列表
public SqlDataReader Getwaretype()
{
//创建数据库连接和命令的对象
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand myCommand = new SqlCommand("Listwaretype", myConnection);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//打开数据库连接
myConnection.Open();
//执行数据操作命令
//SqlDataReader读取数据到记录集后,会自动关闭数据库的连接
SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
//返回DataReader的结果
return result;
}
// GetwareBytype方法返回指定种类的所有商品
public SqlDataReader GetwareBytype(int categoryID)
{
//创建数据库连接和命令的对象
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand myCommand = new SqlCommand("wareByCategory", myConnection);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter parameterCategoryID = new SqlParameter("@typeid", SqlDbType.Int, 4);
parameterCategoryID.Value = categoryID;
myCommand.Parameters.Add(parameterCategoryID);
//打开数据库连接
myConnection.Open();
//执行数据操作命令
//SqlDataReader读取数据到记录集后,会自动关闭数据库的连接
SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
//返回DataReader的结果
return result;
}
// GetwareDetails方法返回指定商品的详细信息
public wareDetails GetwareDetails(int wareID)
{
//创建数据库连接和命令的对象
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand myCommand = new SqlCommand("wareDetail", myConnection);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter parameterwareID = new SqlParameter("@wareID", SqlDbType.Int, 4);
parameterwareID.Value = wareID;
myCommand.Parameters.Add(parameterwareID);
SqlParameter parameterUnitCost = new SqlParameter("@saleprice", SqlDbType.Money, 8);
//指出该参数是存储过程的OUTPUT参数
parameterUnitCost.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterUnitCost);
SqlParameter parameterModelNumber = new SqlParameter("@ModelNumber", SqlDbType.NVarChar, 50);
//指出该参数是存储过程的OUTPUT参数
parameterModelNumber.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterModelNumber);
SqlParameter parameterModelName = new SqlParameter("@ModelName", SqlDbType.NVarChar, 50);
//指出该参数是存储过程的OUTPUT参数
parameterModelName.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterModelName);
SqlParameter parameterDescription = new SqlParameter("@wareshow", SqlDbType.NVarChar, 4000);
//指出该参数是存储过程的OUTPUT参数
parameterDescription.Direction = ParameterDirection.Output;
myCommand.Parameters.Add(parameterDescription);
//打开数据库连接
myConnection.Open();
//进行数据库操作
myCommand.ExecuteNonQuery();
//关闭数据库连接
myConnection.Close();
//产生wareDetails类的对象
wareDetails mywareDetails = new wareDetails();
//根据存储过程的输出参数的值对mywareDetails对象进行赋值
mywareDetails.ModelNumber = (string)parameterModelNumber.Value;
mywareDetails.ModelName = (string)parameterModelName.Value;
mywareDetails.UnitCost = (decimal)parameterUnitCost.Value;
mywareDetails.Description = ((string)parameterDescription.Value).Trim();
return mywareDetails;
}
// 返回销量最好的10种商品
public SqlDataReader GetMostSoldware()
{
//创建数据库连接和命令的对象
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand myCommand = new SqlCommand("MostSoldware", myConnection);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//打开数据库连接
myConnection.Open();
//执行数据操作命令
//SqlDataReader读取数据到记录集后,会自动关闭数据库的连接
SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
//返回DataReader的结果
return result;
}
// 用于查找符合条件的商品
public SqlDataReader SearchwareDescriptions(string searchString)
{
//创建数据库连接和命令的对象
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand myCommand = new SqlCommand("Searchware", myConnection);
//指明Sql命令的操作类型是使用存储过程
myCommand.CommandType = CommandType.StoredProcedure;
//给存储过程添加参数
SqlParameter parameterSearch = new SqlParameter("@Search", SqlDbType.NVarChar, 255);
parameterSearch.Value = searchString;
myCommand.Parameters.Add(parameterSearch);
//执行数据操作命令并返回结果的记录集
myConnection.Open();
SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
//返回DataReader的结果
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -