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

📄 storedbo.cs

📁 源码实现Internet购物的数据库设计代码以及相应的操作界面。通过本程序可以了解数据库的存储过程内容和WEB程序的设计。
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;

namespace StoreOnline
{
	// UserDetails类
	public class UserDetails
	{
		public String UserName;
		public String Email;
		public String Password;
		public String Name;
		public String IDcardNumber;
		public String TelephoneNumber;
		public String Adress;
		public String Zonecode;
		public String Mobilephone;
		public String Oicq;
		public String MSN;
	}

	public class ProDetails 
	{
		public decimal  ProMarketPrice;
		public String  ProName;
		public String  ProPicture;
		public decimal ProPrice;
		public String  Description;
	}
	public class OrderDetails 
	{

		public DateTime  OrderDate;
		public decimal   OrderTotalCost;
		public DataSet   OrderItems;
	}
	
	public class StoreDBO
	{
		public StoreDBO()
		{
			//
			// TODO: 在此处添加构造函数逻辑
			//
		}
		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.NVarChar, 16);
			//指出该参数是存储过程的OUTPUT参数
			parameterUserName.Direction = ParameterDirection.Output;
			myCommand.Parameters.Add(parameterUserName);

			SqlParameter parameterPassword = new SqlParameter("@Password", SqlDbType.NVarChar, 12);
			parameterPassword.Direction = ParameterDirection.Output;
			myCommand.Parameters.Add(parameterPassword);

			SqlParameter parameterName = new SqlParameter("@Name", SqlDbType.NVarChar, 10);
			parameterName.Direction = ParameterDirection.Output;
			myCommand.Parameters.Add(parameterName);
			
			SqlParameter parameterEmail = new SqlParameter("@Email", SqlDbType.NVarChar, 50);
			parameterEmail.Direction = ParameterDirection.Output;
			myCommand.Parameters.Add(parameterEmail);

			SqlParameter parameterIDCardNumber = new SqlParameter("@IDCardNumber", SqlDbType.NVarChar, 18);
			parameterIDCardNumber.Direction = ParameterDirection.Output;
			myCommand.Parameters.Add(parameterIDCardNumber);

			SqlParameter parameterTelephoneNumber = new SqlParameter("@TelephoneNumber", SqlDbType.NVarChar, 12);
			parameterTelephoneNumber.Direction = ParameterDirection.Output;
			myCommand.Parameters.Add(parameterTelephoneNumber);

			SqlParameter parameterAddress = new SqlParameter("@Address", SqlDbType.NVarChar, 50);
			parameterAddress.Direction = ParameterDirection.Output;
			myCommand.Parameters.Add(parameterAddress);

			SqlParameter parameterZoneCode = new SqlParameter("@ZoneCode", SqlDbType.NVarChar, 10);
			parameterZoneCode.Direction = ParameterDirection.Output;
			myCommand.Parameters.Add(parameterZoneCode);

			SqlParameter parameterMobilephone = new SqlParameter("@Mobilephone", SqlDbType.NVarChar, 12);
			parameterMobilephone.Direction = ParameterDirection.Output;
			myCommand.Parameters.Add(parameterMobilephone);

			SqlParameter parameterOicq = new SqlParameter("@Oicq", SqlDbType.NVarChar, 20);
			parameterOicq.Direction = ParameterDirection.Output;
			myCommand.Parameters.Add(parameterOicq);

			SqlParameter parameterMSN = new SqlParameter("@MSN", SqlDbType.NVarChar, 50);
			parameterMSN.Direction = ParameterDirection.Output;
			myCommand.Parameters.Add(parameterMSN);
			
			//打开数据库连接
			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.Adress =(string) parameterAddress.Value;
			myUserDetails.Zonecode = (string) parameterZoneCode.Value;
			myUserDetails.Mobilephone = (string) parameterMobilephone.Value;
	//		myUserDetails.Zonecode = (string) parameterZoneCode.Value;
			myUserDetails.Oicq = (string) parameterOicq.Value;
			myUserDetails.MSN = (string) parameterMSN.Value;

			return myUserDetails;
		}
		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, 16);
			parameterUsername.Value = username;
			myCommand.Parameters.Add(parameterUsername);

			SqlParameter parameterPassword = new SqlParameter("@Password", SqlDbType.NVarChar, 12);
			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();
			}
		}
		public String GetShoppingCartId() 
		{

			//获取当前ASP.NET请求的HttpContext
			System.Web.HttpContext thecontext = System.Web.HttpContext.Current;

			//如果用户已经通过登录认证或者注册完毕,则使用该用户的UserID作为永久购物车的ID,并返回这个ID
			if (thecontext.User.Identity.Name != "") 
			{
				return thecontext.User.Identity.Name;
			}

			//如果用户尚未通过认证,则要分两种情况进行处理。
			//如果Cookies[Store_CartID"]不为空则获取这个cookie值作为临时购物车的ID并返回。
			//反之随机产生一个新值作为临时购物车ID并返回。
			if (thecontext.Request.Cookies["Store_CartID"] != null) 
			{
				return thecontext.Request.Cookies["Store_CartID"].Value;
			}
			else 
			{
				//产生一个新的随机的GUID
				Guid tempShoppingCartId = Guid.NewGuid();

				//把tempCartId发送到客户端,并作为一个cookie保存下来
				thecontext.Response.Cookies["Store_CartID"].Value = tempShoppingCartId.ToString();

				//函数返回这个tempCartId
				return tempShoppingCartId.ToString();
			}
		}
		public int CountShoppingCartItem(string cartID) 
		{

			//创建数据库连接和命令的对象
			SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
			SqlCommand myCommand = new SqlCommand("CountShoppingCartItem", myConnection);

			//指明Sql命令的操作类型是使用存储过程
			myCommand.CommandType = CommandType.StoredProcedure;

			//给存储过程添加参数
			SqlParameter parameterCartID = new SqlParameter("@CartIDString", SqlDbType.NVarChar, 50);
			parameterCartID.Value = cartID;
			myCommand.Parameters.Add(parameterCartID);

			SqlParameter parameterItemCount = new SqlParameter("@ItemCount", SqlDbType.Int, 4);
			parameterItemCount.Direction = ParameterDirection.Output;
			myCommand.Parameters.Add(parameterItemCount);

			//打开数据库连接
			myConnection.Open();
			//进行数据库操作
			myCommand.ExecuteNonQuery();
			//关闭数据库连接
			myConnection.Close();

			//利用存储过程的OUTPUT参数返回ItemCount,即图书的数量
			return ((int)parameterItemCount.Value);
		}
	
		public SqlDataReader DisplayShoppingCart(string cartID) 
		{
			//创建数据库连接和命令的对象
			SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
			SqlCommand myCommand = new SqlCommand("DisplayShoppingCart", myConnection);

			//指明Sql命令的操作类型是使用存储过程
			myCommand.CommandType = CommandType.StoredProcedure;

			//给存储过程添加参数
			SqlParameter parameterCartID = new SqlParameter("@CartID", SqlDbType.NVarChar, 50);
			parameterCartID.Value = cartID;
			myCommand.Parameters.Add(parameterCartID);

			//打开数据库连接
			myConnection.Open();
			//执行数据操作命令
			//SqlDataReader读取数据到记录集后,会自动关闭数据库的连接
			SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);

			//返回DataReader的结果
			return result;
		}
		
		// ShoppingCartTotalCost方法返回购物车中所有商品的价格总额
		
		public decimal ShoppingCartTotalCost(string cartID) 
		{

			//创建数据库连接和命令的对象
			SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
			SqlCommand myCommand = new SqlCommand("ShoppingCartTotalCost", myConnection);

			//指明Sql命令的操作类型是使用存储过程
			myCommand.CommandType = CommandType.StoredProcedure;

			//给存储过程添加参数
			SqlParameter parameterCartID = new SqlParameter("@CartIDString", SqlDbType.NVarChar, 50);
			parameterCartID.Value = cartID;
			myCommand.Parameters.Add(parameterCartID);

			SqlParameter parameterTotalCost = new SqlParameter("@TotalCost", SqlDbType.Money, 8);
			parameterTotalCost.Direction = ParameterDirection.Output;
			myCommand.Parameters.Add(parameterTotalCost);

			myConnection.Open();
			myCommand.ExecuteNonQuery();
			myConnection.Close();

			//返回价格总额
			if (parameterTotalCost.Value.ToString() != "") 
			{
				return (decimal)parameterTotalCost.Value;
			}
			else 
			{
				return 0;
			}
		}
		
		// ShoppingCartRemoveItem方法用于从购物车中删除一种商品。
		
		public void ShoppingCartRemoveItem(string cartID, int ProID) 
		{

			//创建数据库连接和命令的对象
			SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
			SqlCommand myCommand = new SqlCommand("RemoveShoppingCartItem", myConnection);

			//指明Sql命令的操作类型是使用存储过程
			myCommand.CommandType = CommandType.StoredProcedure;

			//给存储过程添加参数
			SqlParameter parameterCartIDString = new SqlParameter("@CartIDString", SqlDbType.Int, 4);
			parameterCartIDString.Value = cartID;
			myCommand.Parameters.Add(parameterCartIDString);

			SqlParameter parameterProID = new SqlParameter("@ProID", SqlDbType.NVarChar, 50);
			parameterProID.Value = ProID;
			myCommand.Parameters.Add(parameterProID);

			//打开数据库连接
			myConnection.Open();
			//进行数据库操作
			myCommand.ExecuteNonQuery();
			//关闭数据库连接
			myConnection.Close();
		}
		
		// ShoppingCartUpdate方法用于更新购物车里某件商品的购买数量
		
		public void ShoppingCartUpdate(string cartID, int ProID, int quantity) 
		{
			//在修改购物车里某件商品的购买数量时,如果用户输入一个负数,则该函数抛出异常
			if (quantity < 0) 
			{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -