⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 istoredbo.cs

📁 购物管理系统的设计与开发
💻 CS
📖 第 1 页 / 共 2 页
字号:
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 + -