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

📄 order.cs

📁 这是一个有关数据库课程设计的题目。供大家参考。可以下载
💻 CS
字号:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections;

namespace Hugo.BookShop
{
	/// <summary>
	/// Order description。
	/// </summary>
	public class Order:DbBase.Base,IEnumerator
	{
		private ArrayList allBooks = new ArrayList();
		private int userId;
		//private byte status;
		private DateTime date = System.DateTime.Now.Date;
		private int position=-1;

		public Order()
		{
			
		}


		#region Properties of order class

		object IEnumerator.Current
		{
			get
			{
				return allBooks[position];
			}
		}


		/// <summary>
		/// set detail of order form
		/// </summary>
		public int Count
		{
			get
			{
				strSQL = "Select Count(*) From OrderDetails Where OrderId=" + this.ID; 
				try
				{
					return ExecuteSql4Value(strSQL);
				}
				catch
				{
					return -1;
				}				
			}
		}

		/// <summary>
		/// sum
		/// </summary>
		public double Total
		{
			get
			{
				strSQL = "Select Sum(A.Price * A.Discount * C.Quantity) as Total From Book A,Orders B ,OrderDetails C Where A.id = C.BookId and B.id = C.OrderId And C.OrderId=" + this.ID; 
				try
				{
					return (double)ExecuteSql4ValueEx(strSQL);
				}
				catch
				{
					return 0.0;
				}				
			}
		}


		/// <summary>
		/// User ID
		/// </summary>
		public int UserId
		{
			get
			{
				return userId;			
			}
			set
			{
				userId = value;
			}
		}
		#endregion


		#region Functions of order class

		/// <summary>
		/// return details of this order
		/// </summary>
		/// <returns></returns>
		public ICollection GetItems()
		{
			return allBooks;
		}

		

		public OrderDetails this[int index]
		{
			get
			{
				return (OrderDetails)allBooks[index];
			}
		}


		public void Clear()
		{
			allBooks.Clear();
		}


		public void Add(OrderDetails value)
		{
			allBooks.Add(value);
		}


		bool IEnumerator.MoveNext()
		{
			position++;
			if(position>=allBooks.Count)
			{
				return false;
			}
			else
			{
				return true;
			}
		}


		void IEnumerator.Reset()
		{
			position = -1;
		}


		public void RemoveAt(int index)
		{
			allBooks.RemoveAt(index);
		}


		public void Remove(int itemId)
		{
			foreach(OrderDetails item in allBooks)
			{
				if(itemId == item.BookId)
				{
					allBooks.Remove(item);
					return;
				}
			}
		}


		public int Have(int userId)
		{
			try
			{
				string [] arrSQL = new String[allBooks.Count];
				strSQL = "Insert into Orders(UserId) values(" + userId.ToString() + ")";
				ExecuteSql(strSQL);
				strSQL = "Select Max(Id) From Orders";
				int orderId = ExecuteSql4Value(strSQL);
			
				System.Text.StringBuilder sb = new System.Text.StringBuilder();
				Hugo.BookShop.OrderDetails item = new Hugo.BookShop.OrderDetails();
				for(int i=0;i<allBooks.Count;i++)
				{
					item = (Hugo.BookShop.OrderDetails)allBooks[i];
					sb.Append("Insert into OrderDetails(OrderId,BookId,Quantity) values(");
					sb.Append(orderId.ToString());
					sb.Append(",");
					sb.Append(item.BookId.ToString());
					sb.Append(",");
					sb.Append(item.Quantity.ToString());
					sb.Append(")");
					arrSQL[i] = sb.ToString();
					sb.Remove(0,sb.Length);
				}

				ExecuteSqls(arrSQL);
				return orderId;
			}
			catch
			{
				throw new Exception("Order books FAILED!");
			}			
		}


		public static bool Deal(int orderId)
		{
			strSQL = "Update OrdersV Set Status =1 Where Id=" + orderId.ToString();
			try
			{
				ExecuteSql4Ds(strSQL);
				strSQL = "Update Book set Sales=Sales+1 Where id in(SELECT b.BookId FROM Orders a INNER JOIN OrderDetails b ON a.Id = b.OrderId AND a.Id = " + orderId.ToString() + ")";
				ExecuteSql4Ds(strSQL);
				return true;
			}
			catch
			{
				throw new Exception("Deal with the order failed!");
			}
		}


		public static DataSet GetOrder(int orderId)
		{
			strSQL = "SELECT UserId, OrderDate,CASE WHEN Status = '1' THEN 'dealt' ELSE 'on progress' END AS Status FROM Orders Where Id=" + orderId.ToString();
			try
			{
				return ExecuteSql4Ds(strSQL);				
			}
			catch
			{
				throw new Exception("Get order failed!");
			}
		}


		public static DataSet GetOrders()
		{
			strSQL = "SELECT * FROM OrdersV Where Status=0 or Status IS NULL";
			try
			{
				return ExecuteSql4Ds(strSQL);				
			}
			catch
			{
				throw new Exception("Get orders failed!");
			}
		}


		public static DataSet GetOrders(int userId)
		{
			strSQL = "SELECT Id,UserId, OrderDate,CASE WHEN Status = '1' THEN 'dealt' ELSE 'on progress' END AS Status FROM Orders Where UserId=" + userId.ToString();
			try
			{
				return ExecuteSql4Ds(strSQL);				
			}
			catch
			{
				throw new Exception("Get order failed!");
			}
		}


		public static DataSet GetDetails(int orderId)
		{
			strSQL = "Select * from DetailsV Where orderId=" + orderId.ToString();
			try
			{
				return ExecuteSql4Ds(strSQL);				
			}
			catch
			{
				throw new Exception("Get order details failed!");
			}
		}

		#endregion
	}
}

⌨️ 快捷键说明

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