book.cs

来自「这是一个编好的网上书店系统」· CS 代码 · 共 604 行 · 第 1/2 页

CS
604
字号
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using RobertSoft.BookStore.DBClass;

namespace RobertSoft.BookStore
{
	/// <summary>
	/// Book 的摘要说明。
	/// </summary>
	public class Book : DBBaseClass
	{
	
		#region "Functions of Book"

		public Book()
		{
			// TODO: 在此处添加构造函数逻辑
		}

		/// <summary>
		/// Get all of the book
		/// </summary>
		/// <returns>DataView</returns>
		public DataView GetBook()
		{
			string strSql;
			DataSet currentDS;
			strSql = "select * from [BookInfo]";
			currentDS = ExecuteSQLForDS(strSql);
			return currentDS.Tables[0].DefaultView;
		}
		
		/// <summary>
		/// Get new book by id in dec
		/// </summary>
		/// <returns>DataView</returns>
		public DataView GetNewBook()
		{
			string strSql;
			DataSet currentDS;
			//strSql = "select Top 20 ID, BookName, Cover, Description from [BookInfo] order by ID desc";
			strSql = "select Top 20 ID, BookName, Description, Cover=case when(not Cover is null) then ' <img src=ReadBookCover.aspx?id='+cast(ID as varchar(10))+' Border=1 width=60 height=75>' else ' <img src=img/NoCover.jpg border=1 width=60 height=75>' end from [BookInfo] order by ID desc";
			currentDS = ExecuteSQLForDS(strSql);
			return currentDS.Tables[0].DefaultView;
		}

		/// <summary>
		/// Get news of the website	
		/// </summary>
		/// <returns></returns>
		public DataView GetNews()
		{
			string strSql;
			DataSet currentDS;
			strSql = "select Top 20 ID, Title from [News] order by ID desc";
			currentDS = ExecuteSQLForDS(strSql);
			return currentDS.Tables[0].DefaultView;
		}

		public DataRow GetNewsDetail(int nID)
		{
			string strSql;
			DataSet currentDS;
			try
			{
				strSql = "select * from [News] where ID=" + nID;
				currentDS = ExecuteSQLForDS(strSql);
				return currentDS.Tables[0].Rows[0];
			}
			catch(System.Data.SqlClient.SqlException e)
			{
				throw new Exception(e.Message);
			}
		}

		/// <summary>
		/// Get Special Price Book
		/// </summary>
		/// <returns></returns>
		public DataView GetSpecialPriceBook()
		{
			string strSql;
			DataSet currentDS;
			// strSql = "select Top 20 ID, BookName, Cover, Description from [BookInfo] where SpecialPrice=1 order by ID desc";
			strSql = "select Top 20 ID, BookName, Description, Cover=case when(not Cover is null) then ' <img src=ReadBookCover.aspx?id='+cast(ID as varchar(10))+' Border=1 width=60 height=75>' else ' <img src=img/NoCover.jpg border=1 width=60 height=75>' end from [BookInfo] where SpecialPrice=1 order by ID desc";
			currentDS = ExecuteSQLForDS(strSql);
			return currentDS.Tables[0].DefaultView;
		}

		/// <summary>
		/// Get queried books
		/// </summary>
		/// <param name="str">string</param>
		/// <returns></returns>
		public DataView GetBookEx(string str)
		{
			DataSet currentDS;
			currentDS = ExecuteSQLForDS(str);
			return currentDS.Tables[0].DefaultView;
		}

		/// <summary>
		/// Get book's cover
		/// </summary>
		/// <param name="id"></param>
		/// <returns></returns>
		public DataView GetBookCover(int id)
		{
			DataSet currentDS;
			string strSql;
			strSql = "select Cover from [BookInfo] where ID=" + id;
			currentDS = ExecuteSQLForDS(strSql);
			return currentDS.Tables[0].DefaultView;
		}

		/// <summary>
		/// Get top 10 the best sold books
		/// </summary>
		/// <returns>DataView</returns>
		public DataView GetSaleTop10()
		{
			string strSql;
			DataSet currentDS;
			strSql = "select top 20 * from [BookInfo] order by BookInfo.SoldNumber DESC";
			currentDS = ExecuteSQLForDS(strSql);
			return currentDS.Tables[0].DefaultView;
		}

		/// <summary>
		/// Get top 10 the best hit books
		/// </summary>
		/// <returns>DataView</returns>
		public static DataView GetHitTop10()
		{
			string strSql;
			DataSet currentDS;
			strSql = "select top 20 * from [BookInfo] order by BookInfo.HitNumber DESC";
			currentDS = ExecuteSQLForDS(strSql);
			return currentDS.Tables[0].DefaultView;
		}
		
		/// <summary>
		/// Add a book to database
		/// </summary>
		/// <param name="tmpArrayList">ArrayList</param>
		public void AddBook(ArrayList tmpArrayList)
		{
			SqlConnection currentConn = new SqlConnection(strConn);
			SqlCommand currentCmd = new SqlCommand("AddBookInfo", currentConn);
			currentCmd.CommandType = CommandType.StoredProcedure;		
			// BookName, PublishingHouse, ClassInfo, Author, Translator, ISBN, Pages
			currentCmd.Parameters.Add(new SqlParameter("@name", SqlDbType.VarChar, 80));
			currentCmd.Parameters["@name"].Value = tmpArrayList[0];

			currentCmd.Parameters.Add(new SqlParameter("@publishinghouse", SqlDbType.VarChar, 80));
			currentCmd.Parameters["@publishinghouse"].Value = tmpArrayList[1];

			currentCmd.Parameters.Add(new SqlParameter("@classInfo", SqlDbType.Int));
			currentCmd.Parameters["@classInfo"].Value = tmpArrayList[2];

			currentCmd.Parameters.Add(new SqlParameter("@author", SqlDbType.VarChar, 40));
			currentCmd.Parameters["@author"].Value = tmpArrayList[3];

			currentCmd.Parameters.Add(new SqlParameter("@translator", SqlDbType.VarChar, 40));
			currentCmd.Parameters["@translator"].Value = tmpArrayList[4];

			currentCmd.Parameters.Add(new SqlParameter("@isbn", SqlDbType.VarChar, 40));
			currentCmd.Parameters["@isbn"].Value = tmpArrayList[5];

			currentCmd.Parameters.Add(new SqlParameter("@pages", SqlDbType.Int));
			currentCmd.Parameters["@pages"].Value = tmpArrayList[6];
			// PageLarge, SeriesName, 

			currentCmd.Parameters.Add(new SqlParameter("@pagelarge", SqlDbType.Int));
			currentCmd.Parameters["@pagelarge"].Value = tmpArrayList[7];

			currentCmd.Parameters.Add(new SqlParameter("@seriesname", SqlDbType.VarChar, 60));
			currentCmd.Parameters["@seriesname"].Value = tmpArrayList[8];

			// PublishDate, Price, Description, Abstract, BookCatalog, Cover, CommentNumber, HitNumber, SoldNumber,
			currentCmd.Parameters.Add(new SqlParameter("@publishdate", SqlDbType.VarChar, 40));
			currentCmd.Parameters["@publishdate"].Value = tmpArrayList[9];

			currentCmd.Parameters.Add(new SqlParameter("@price", SqlDbType.VarChar, 40));
			currentCmd.Parameters["@price"].Value = tmpArrayList[10];

			currentCmd.Parameters.Add(new SqlParameter("@description", SqlDbType.Text));
			currentCmd.Parameters["@description"].Value = tmpArrayList[11];

			currentCmd.Parameters.Add(new SqlParameter("@abstract", SqlDbType.Text));
			currentCmd.Parameters["@abstract"].Value = tmpArrayList[12];

			currentCmd.Parameters.Add(new SqlParameter("@bookcatalog", SqlDbType.Text));
			currentCmd.Parameters["@bookcatalog"].Value = tmpArrayList[13];

			currentCmd.Parameters.Add(new SqlParameter("@cover", SqlDbType.Image));
			currentCmd.Parameters["@cover"].Value = tmpArrayList[14];

			currentCmd.Parameters.Add(new SqlParameter("@commentnumber", SqlDbType.Int));
			currentCmd.Parameters["@commentnumber"].Value = tmpArrayList[15];

			currentCmd.Parameters.Add(new SqlParameter("@hitnumber", SqlDbType.Int));
			currentCmd.Parameters["@hitnumber"].Value = tmpArrayList[16];

			currentCmd.Parameters.Add(new SqlParameter("@soldnumber", SqlDbType.Int));
			currentCmd.Parameters["@soldnumber"].Value = tmpArrayList[17];
			// Status, SpecialPrice, Discount

			currentCmd.Parameters.Add(new SqlParameter("@status", SqlDbType.Int));
			currentCmd.Parameters["@status"].Value = tmpArrayList[18];
			
			currentCmd.Parameters.Add(new SqlParameter("@specialprice", SqlDbType.Int));
			currentCmd.Parameters["@specialprice"].Value = tmpArrayList[19];

			currentCmd.Parameters.Add(new SqlParameter("@discount", SqlDbType.Int));
			currentCmd.Parameters["@discount"].Value = tmpArrayList[20];

			try
			{
				currentConn.Open() ;
				currentCmd.ExecuteNonQuery() ;
			}
			catch(System.Data.SqlClient.SqlException e)
			{
				throw new  Exception(e.Message);
			}
			finally
			{
				currentCmd.Dispose() ;
				currentConn.Close() ;
			}
		}

		/// <summary>
		/// Add a book to database
		/// </summary>
		/// <param name="tmpArrayList">ArrayList</param>
		public void UpdateBook(ArrayList tmpArrayList, bool bIsHasImage)
		{
			SqlConnection currentConn = new SqlConnection(strConn);
			SqlCommand currentCmd;
			if(bIsHasImage)
			{
				currentCmd = new SqlCommand("UpdateBookInfo", currentConn);
			}
			else
			{
				currentCmd = new SqlCommand("UpdateBookInfoNoImage", currentConn);
			}
			currentCmd.CommandType = CommandType.StoredProcedure;		

			// BookName, PublishingHouse, ClassInfo, Author, Translator, ISBN, Pages
			currentCmd.Parameters.Add(new SqlParameter("@name", SqlDbType.VarChar, 80));
			currentCmd.Parameters["@name"].Value = tmpArrayList[0];

			currentCmd.Parameters.Add(new SqlParameter("@publishinghouse", SqlDbType.VarChar, 80));
			currentCmd.Parameters["@publishinghouse"].Value = tmpArrayList[1];

			currentCmd.Parameters.Add(new SqlParameter("@classInfo", SqlDbType.Int));
			currentCmd.Parameters["@classInfo"].Value = tmpArrayList[2];

			currentCmd.Parameters.Add(new SqlParameter("@author", SqlDbType.VarChar, 40));
			currentCmd.Parameters["@author"].Value = tmpArrayList[3];

			currentCmd.Parameters.Add(new SqlParameter("@translator", SqlDbType.VarChar, 40));
			currentCmd.Parameters["@translator"].Value = tmpArrayList[4];

			currentCmd.Parameters.Add(new SqlParameter("@isbn", SqlDbType.VarChar, 40));
			currentCmd.Parameters["@isbn"].Value = tmpArrayList[5];

			currentCmd.Parameters.Add(new SqlParameter("@pages", SqlDbType.Int));
			currentCmd.Parameters["@pages"].Value = tmpArrayList[6];
			// PageLarge, SeriesName, 

			currentCmd.Parameters.Add(new SqlParameter("@pagelarge", SqlDbType.Int));
			currentCmd.Parameters["@pagelarge"].Value = tmpArrayList[7];
	
			// PublishDate, Price, Description, Abstract, BookCatalog, Cover, CommentNumber, HitNumber, SoldNumber,
			currentCmd.Parameters.Add(new SqlParameter("@publishdate", SqlDbType.VarChar, 40));
			currentCmd.Parameters["@publishdate"].Value = tmpArrayList[8];

			currentCmd.Parameters.Add(new SqlParameter("@price", SqlDbType.VarChar, 40));
			currentCmd.Parameters["@price"].Value = tmpArrayList[9];

			currentCmd.Parameters.Add(new SqlParameter("@description", SqlDbType.Text));
			currentCmd.Parameters["@description"].Value = tmpArrayList[10];

			currentCmd.Parameters.Add(new SqlParameter("@specialprice", SqlDbType.Int));
			currentCmd.Parameters["@specialprice"].Value = tmpArrayList[11];

			currentCmd.Parameters.Add(new SqlParameter("@discount", SqlDbType.Int));
			currentCmd.Parameters["@discount"].Value = tmpArrayList[12];

			currentCmd.Parameters.Add(new SqlParameter("@nBookID", SqlDbType.Int));
			currentCmd.Parameters["@nBookID"].Value = tmpArrayList[13];

			if(bIsHasImage)
			{
				currentCmd.Parameters.Add(new SqlParameter("@cover", SqlDbType.Image));
				currentCmd.Parameters["@cover"].Value = tmpArrayList[14];

⌨️ 快捷键说明

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