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

📄 newsdb.cs

📁 This is not a very mean things
💻 CS
字号:
//-------------------------------------------------------------
//
// WebExpert.NET 1.0 
//
// (c) 2003, www.AspCool.com. All rights reserved.
// ASP酷技术网 版权所有
//
// 该源码下载自:http://www.51aspx.com
// 邮箱:tim@aspcool.com
//
// 版权声明:本程序仅供学习使用,你也可以修改后在网站上使用,但使用时必
// 须保留ASP酷技术网(www.AspCool.com)的版权信息和链接。本程序随《ASP.NET
// 网站建设专家》一书赠送,未经作者同意,不得随意修改、传播。
//
// 描述:
//   此文件包含下面的类:
//       NewsDB
//
// 作者:     王保健
// 时间:     2003/09/15
//
//-------------------------------------------------------------


using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;


namespace AspCool.WebExpert
{
	public class NewsDB
	{
		# region 显示新闻分类
		//-----------------------------------------------------------
		//
		// GetNewsSort 方法
		//
		// TGetNewsSort返回一个包含所有新闻分类名称的SqlDataReader。.
		//
		//-----------------------------------------------------------

		public SqlDataReader GetNewsSort() 
		{

			// 创建一个数据库连接实例和命令对象。
			SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
			SqlCommand myCommand = new SqlCommand("GetNewsSort", myConnection);

			// 把命令对象的命令类型设置为存储过程。
			myCommand.CommandType = CommandType.StoredProcedure;

		

			// 执行命令
			myConnection.Open();
			SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
            
			// 返回datareader 
			return result;
		}
		#endregion

		# region 显示新闻内容
		
		//-----------------------------------------------------------
		//
		// GetNews 方法
		//
		// GetNews 方法返回所有包含所有新闻信息的DataSet。
		//
		//-----------------------------------------------------------
		private DataSet GetNews(int SortID)
		{
			// 创建一个数据库连接实例和命令对象。
			SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
			SqlDataAdapter myCommand = new SqlDataAdapter("GetNews", myConnection);

			// 把命令对象的命令类型设置为存储过程。
			myCommand.SelectCommand.CommandType = CommandType.StoredProcedure;



			// 建立并填充一个DataSet。
			DataSet myDataSet = new DataSet();
			myCommand.Fill(myDataSet);
		

			// 返回一个DataSet。
			return myDataSet;
		}

		//-----------------------------------------------------------
		//
		// GetRecords 方法
		//
		// GetRecords 方法是用来计算特定分类的新闻的总数。
		//
		//
		//-----------------------------------------------------------
		public int GetNewsRecords(int SortID)
		{
			// 创建一个数据库连接实例和命令对象。
			SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
			SqlCommand myCommand = new SqlCommand("GetNewsRecords", myConnection);

			// 把命令对象的命令类型设置为存储过程
			myCommand.CommandType = CommandType.StoredProcedure;

			// 向存储过程中传递参数。
			SqlParameter parameterSortID = new SqlParameter("@SortID", SqlDbType.Int, 4);
			parameterSortID.Value = SortID;
			myCommand.Parameters.Add(parameterSortID);

			// 执行命令。
			myConnection.Open();
			SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
			return (int)result["co"];
            

		}

		//-----------------------------------------------------------
		//
		// CurrentPageNews 方法
		//
		// CurrentPageNews 方法是用来从一个包含所有新闻的DataSet中返回一个只包含
		// 当前页面的DataSet。
		//
		// 其中currentPage是指当前的页号,pageSize是指每页有多少条新闻,totalPage
		// 用来返回总共有多少页新闻。
		//
		//-----------------------------------------------------------
		public DataSet CurrentPageNews(int currentPage,int pageSize,int sortID,out int totalPage,out int records)
		{
			// 创建一个数据库连接实例和命令对象。
			SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
			SqlDataAdapter myCommand = new SqlDataAdapter("GetNews", myConnection);

			// 把命令对象的命令类型设置为存储过程。
			myCommand.SelectCommand.CommandType = CommandType.StoredProcedure;

			// 向存储过程中传递参数。
			SqlParameter parameterSortID = new SqlParameter("@SortID", SqlDbType.Int, 4);
			parameterSortID.Value = sortID;
			myCommand.SelectCommand.Parameters.Add(parameterSortID);

			// 建立并填充一个DataSet。
			DataSet allNews = new DataSet();
			myCommand.Fill(allNews);

			// 创建一个新的DataSet。
			DataSet dsCurrentNews = new DataSet();

			// 计算所有新闻的条数。
			records = allNews.Tables[0].Rows.Count;

			// 计算当前页第一条新闻的位置。
			int startIndex = (currentPage-1)*pageSize;

			// 计算当前页最后一条新闻的位置。
			int endIndex = startIndex + pageSize;

			// 计算新闻的页数。
			totalPage = records/pageSize;

			if (totalPage*pageSize<records)
			{
				totalPage++;
			}

			if (endIndex>records)
				endIndex = records;
			
			// 建立一个与allNews数据结构完全一样的DataSet.
			dsCurrentNews = allNews.Clone();

			// 取得当前页的所有记录,并保存到新的DataSet中去。
			for (int i=startIndex; i<endIndex; i++)
			{
				DataRow row = dsCurrentNews.Tables[0].NewRow();
				row.ItemArray = allNews.Tables[0].Rows[i].ItemArray;

				dsCurrentNews.Tables[0].Rows.Add(row);
			}
			
			// 返回当前页的DataSet。
			return dsCurrentNews;
		}

		//-----------------------------------------------------------
		//
		// ClickNews 方法
		//
		// ClickNews 是把News数据表中被访问的新闻的点击次数增加一。
		//
		//-----------------------------------------------------------

		public void ClickNews(int itemID) 
		{

			// 创建一个数据库连接实例和命令对象。
			SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
			SqlCommand myCommand = new SqlCommand("ClickNews", myConnection);

			// 把命令对象的命令类型设置为存储过程。
			myCommand.CommandType = CommandType.StoredProcedure;

			// 向存储过程中传递参数。
			SqlParameter parameterItemID = new SqlParameter("@ItemID", SqlDbType.Int, 4);
			parameterItemID.Value = itemID;
			myCommand.Parameters.Add(parameterItemID);

			// 打开数据库连接并执行命令。
			myConnection.Open();
			myCommand.ExecuteNonQuery();
			myConnection.Close();
		}

		//-----------------------------------------------------------
		//
		// GetSingleNews 方法
		//
		// GetSingleNews 方法是用来返回一条包含某条新闻记录的所有信息的SqlDataReader.
		// itemId为这条新闻记录的编号。
		//
		//-----------------------------------------------------------

		public SqlDataReader GetSingleNews(int itemId) 
		{

			// 创建一个数据库连接实例和命令对象。
			SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
			SqlCommand myCommand = new SqlCommand("GetSingleNews", myConnection);

			// 把命令对象的命令类型设置为存储过程
			myCommand.CommandType = CommandType.StoredProcedure;

			// 向存储过程中传递参数。
			SqlParameter parameterItemId = new SqlParameter("@ItemId", SqlDbType.Int, 4);
			parameterItemId.Value = itemId;
			myCommand.Parameters.Add(parameterItemId);

			// 执行命令。
			myConnection.Open();
			SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
            
			// 返回一个datareader。
			return result;
		}
		# endregion

		# region 增加、修改、删除新闻


		

		//-----------------------------------------------------------
		//
		// AddNews 方法
		//
		// AddNews 方法在News表中增加一条新的新闻记录,此方法返回新增加的新闻的 
		// 新闻编号。
		//
		//-----------------------------------------------------------

		public int AddNews(int itemId,  String title,int sortID, String content,DateTime expireDate)
		{

			

			// 创建一个数据库连接实例和命令对象。
			SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
			SqlCommand myCommand = new SqlCommand("AddNews", myConnection);

			// 把命令对象的命令类型设置为存储过程。
			myCommand.CommandType = CommandType.StoredProcedure;

			// 向存储过程中传递参数。
			SqlParameter parameterItemID = new SqlParameter("@ItemID", SqlDbType.Int, 4);
			parameterItemID.Direction = ParameterDirection.Output;
			myCommand.Parameters.Add(parameterItemID);

			SqlParameter parameterSortID = new SqlParameter("@sortID", SqlDbType.Int, 4);
			parameterSortID.Value = sortID;
			myCommand.Parameters.Add(parameterSortID);

			SqlParameter parameterTitle = new SqlParameter("@Title", SqlDbType.NVarChar, 100);
			parameterTitle.Value = title;
			myCommand.Parameters.Add(parameterTitle);

			SqlParameter parameterContent = new SqlParameter("@Content", SqlDbType.NVarChar, 2000);
			parameterContent.Value = content;
			myCommand.Parameters.Add(parameterContent);

			SqlParameter parameterExpireDate = new SqlParameter("@ExpireDate", SqlDbType.DateTime, 8);
			parameterExpireDate.Value = expireDate;
			myCommand.Parameters.Add(parameterExpireDate);

			// 打开数据库连接并执行命令。
			myConnection.Open();
			myCommand.ExecuteNonQuery();
			myConnection.Close();

			// 返回新增加的新闻的新闻编号。
			return (int)parameterItemID.Value;
		}

		//-----------------------------------------------------------
		//
		// UpdateNews 方法
		//
		// UpdateNews 是用来根据新闻编号来更新News表中的一条新闻记录。
		//
		//-----------------------------------------------------------

		public void UpdateNews(int itemId,  String title,int sortID, String content,DateTime expireDate)
		{

			
			// 创建一个数据库连接实例和命令对象。
			SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
			SqlCommand myCommand = new SqlCommand("UpdateNews", myConnection);

			// 向存储过程中传递参数。
			myCommand.CommandType = CommandType.StoredProcedure;

			// 向存储过程中传递参数。
			SqlParameter parameterItemID = new SqlParameter("@ItemID", SqlDbType.Int, 4);
			parameterItemID.Value = itemId;
			myCommand.Parameters.Add(parameterItemID);

			SqlParameter parameterSortID = new SqlParameter("@sortID", SqlDbType.Int, 4);
			parameterSortID.Value = sortID;
			myCommand.Parameters.Add(parameterSortID);

			SqlParameter parameterTitle = new SqlParameter("@Title", SqlDbType.NVarChar, 100);
			parameterTitle.Value = title;
			myCommand.Parameters.Add(parameterTitle);

			SqlParameter parameterContent = new SqlParameter("@Content", SqlDbType.NVarChar, 2000);
			parameterContent.Value = content;
			myCommand.Parameters.Add(parameterContent);

			SqlParameter parameterExpireDate = new SqlParameter("@ExpireDate", SqlDbType.DateTime, 8);
			parameterExpireDate.Value = expireDate;
			myCommand.Parameters.Add(parameterExpireDate);

			// 打开数据库连接并执行命令。
			myConnection.Open();
			myCommand.ExecuteNonQuery();
			myConnection.Close();
		
		
		}

		//-----------------------------------------------------------
		//
		// DeleteNews 方法
		//
		// DeleteNews 方法是根据新闻编号删除一条新闻记录。
		// itemID为要删除的新闻的编号。
		//
		//-----------------------------------------------------------

		public void DeleteNews(int itemID) 
		{

			// 创建一个数据库连接实例和命令对象。
			SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
			SqlCommand myCommand = new SqlCommand("DeleteNews", myConnection);

			// 把命令对象的命令类型设置为存储过程。
			myCommand.CommandType = CommandType.StoredProcedure;

			// 向存储过程中传递参数。
			SqlParameter parameterItemID = new SqlParameter("@ItemID", SqlDbType.Int, 4);
			parameterItemID.Value = itemID;
			myCommand.Parameters.Add(parameterItemID);

			// 打开数据库连接并执行命令。
			myConnection.Open();
			myCommand.ExecuteNonQuery();
			myConnection.Close();
		}

		# endregion
	}
}

⌨️ 快捷键说明

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