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

📄 tdatarset.cs

📁 ASP.net网站开发四“酷”全书:新闻、论坛、电子商城、博客_源码
💻 CS
字号:
using System;

namespace _lib
{
	/// <summary>
	/// 单数据基类。
	/// 作者:张宁
	/// 建立:2004.9.23
	/// </summary>
	public abstract class TData
	{
		protected string FTableName;	// 单数据-表名
		protected string FKeyName;		// 单数据-表主键
		protected string FKeyValue;		// 单数据-表主键值

		/// <summary>
		/// [构造] 无参数。
		/// </summary>
		public TData()
		{
		}

		/// <summary>
		/// [构造] 带全部重要参数。
		/// </summary>
		public TData(string TableName, string KeyName, string KeyValue)
		{
			FTableName = TableName;
			FKeyName   = KeyName;
			FKeyValue  = KeyValue;
		}

		/// <summary>
		/// (静态)根据编号在数据库中删除记录。
		/// </summary>
		public static void DeleteByID(string ID, string TableName, string KeyName)
		{
			string strSql = "delete from "+TableName+" where "+KeyName+"='"+ID+"'";
			TSqlDB.ExecuteNonQuery(strSql);
		}

		#region 四个基本数据操作,需要由子类重新实现的方法

		/// <summary>
		/// 在数据库中检索记录(需要由子类实现的方法)。
		/// </summary>
		public abstract void Select();

		/// <summary>
		/// 在数据库中删除记录。
		/// </summary>
		public void Delete()
		{
			string strSql = GetDeleteString();
			TSqlDB.ExecuteNonQuery(strSql);
		}

		/// <summary>
		/// 在数据库中插入记录。
		/// </summary>
		protected void Insert(string ExSql)
		{
			string strSql = GetInsertString(ExSql);
			TSqlDB.ExecuteNonQuery(strSql);
		}

		/// <summary>
		/// 在数据库中更新记录。
		/// </summary>
		protected void Update(string ExSql)
		{
			string strSql = GetUpdateString(ExSql);
			TSqlDB.ExecuteNonQuery(strSql);
		}


		/// <summary>
		/// 组合Select查询串。
		/// </summary>
		protected string GetSelectString()
		{
			return "select top 1 * from "+FTableName+" where "+FKeyName+"='"+FKeyValue+"'";
		}

		/// <summary>
		/// 组合Insert查询串。
		/// </summary>
		protected string GetInsertString(string ExSql)
		{
			return "insert into "+FTableName+" values("+ExSql+")";
		}

		/// <summary>
		/// 组合Update查询串。
		/// </summary>
		protected string GetUpdateString(string ExSql)
		{
			return "update "+FTableName+" set "+ExSql+" where "+FKeyName+"='"+FKeyValue+"'";
		}

		/// <summary>
		/// 组合Delete查询串。
		/// </summary>
		protected string GetDeleteString()
		{
			return "delete from "+FTableName+" where "+FKeyName+"='"+FKeyValue+"'";
		}

		#endregion

		#region 属性定义(可以被子类重载),没有用
/*
		public virtual string TableName
		{
			get
			{
				return FTableName;
			}
		}

		public virtual string KeyName
		{
			get
			{
				return FKeyName;
			}
		}

		public virtual string KeyValue
		{
			get
			{
				return FKeyValue;
			}
			set
			{
				value = FKeyValue;
			}
		}
*/
		#endregion

	}

	/// <summary>
	/// TDataRset 数据集基类。
	/// 作者:张宁
	/// 建立:2004.9.21
	/// </summary>
	public abstract class TDataRset
	{
		protected string FTableName;	// 数据集-表名
		protected string FKeyName;		// 数据集-表主键
		protected string FKeyValue;		// 数据集-表主键值
		protected int FTopSum;		// 数据集-取得数据的条数

		protected string FSqlWhere="";		// SQL - Where
		protected string FSqlOrderBy="";	// SQL - Order By

		private TSqlDB FInnerDB;
		//private System.Data.DataView FDataView;

		/// <summary>
		/// [构造] 无参数。
		/// </summary>
		public TDataRset()
		{
			FInnerDB = new TSqlDB();
			//FDataView = new System.Data.DataView();
		}

		/// <summary>
		/// [构造] 带全部重要参数。
		/// </summary>
		public TDataRset(string TableName, string KeyName, string KeyValue)
		{
			FInnerDB = new TSqlDB();
			//FDataView = new System.Data.DataView();
			this.FTableName = TableName;
			this.FKeyName   = KeyName;
			this.FKeyValue  = KeyValue;
		}

		#region 公有属性
		public string SqlWhere
		{
			get
			{
				return FSqlWhere;
			}
			set
			{
				FSqlWhere= value;
			}
		}

		public string SqlOrderBy
		{
			get
			{
				return FSqlOrderBy;
			}
			set
			{
				FSqlOrderBy= value;
			}
		}

		public int TopSum
		{
			get
			{
				return FTopSum;
			}
			set
			{
				FTopSum= value;
			}
		}

		public System.Data.DataView DataSource
		{
			get
			{
				return FInnerDB.DataSource;
			}
		}
		#endregion

		/// <summary>
		/// 拼接SQL查询串并装载数据集(允许派生类重写)
		/// </summary>
		public virtual void Load()
		{
			string strSql;
			if (FTopSum==0)	// 如果值为0则取全部数据,否则用top语句来限制返回条数
				strSql = "select * from "+FTableName;
			else
				strSql = "select top "+FTopSum+" * from "+FTableName;
			if (this.FSqlWhere.Length>0)
				strSql += " where "+FSqlWhere;
			if (this.FSqlOrderBy.Length>0)
				strSql += " order by "+FSqlOrderBy;
			FInnerDB.OpenRset(strSql);
		}

		/// <summary>
		/// 装载数据集,限制条数
		/// </summary>
		public void LoadWith(int ResultSum)
		{
			this.FTopSum = ResultSum;
			this.Load();
		}

		/// <summary>
		/// 根据提供的过滤条件和排序条件来装载数据集
		/// </summary>
		public void LoadWith(string SqlWhere, string SqlOrderBy)
		{
			FSqlWhere = SqlWhere;
			FSqlOrderBy = SqlOrderBy;
			this.Load();
		}

		/// <summary>
		/// 根据提供的过滤条件和排序条件来装载数据集,限制条数
		/// </summary>
		public void LoadWith(int ResultSum, string SqlWhere, string SqlOrderBy)
		{
			this.FTopSum = ResultSum;
			this.LoadWith(SqlWhere,SqlOrderBy);
		}
	}
}

⌨️ 快捷键说明

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