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

📄 csql.cs

📁 小型项目组用的工作日志记录系统
💻 CS
📖 第 1 页 / 共 2 页
字号:
/*
 * CSql.cs
 * 
 * 作者:邱观琛
 * 创建时间:2002-6-7
 * 最后修改:2002-6-27
 * 
 * 
 * 提供一些与Sql语句及SqlServer数据库有关的函数,包括SqlServer数据类型与
 * C#类型的转换,在sql语句中对各种类型的数据的引用方式、各种sql语句的书写,
 * 各种SqlServer函数的应用等。
 * 
 */

using System;

namespace CFC
{
	/// <summary>
	/// 提供一些与Sql语句及SqlServer数据库有关的函数。
	/// </summary>
	public class CSql
	{
		private CSql()
		{
		}



		#region public static string TrueFilter = "(1=1)" : 永真的条件
		/// <summary>
		/// 永真的条件。
		/// </summary>
		public static string TrueFilter = "(1=1)";
		#endregion

		#region public static string FalseFilter = "(1=0)" : 永假的条件
		/// <summary>
		/// 永假的条件。
		/// </summary>
		public static string FalseFilter = "(1=0)";
		#endregion




		#region public static Type SqlToCsType(string DataType) : 将SqlServer数据类型转换成C#类型
		/// <summary>
		/// 将SqlServer数据类型转换成C#类型。
		/// </summary>
		/// <param name="DataType">需要转换的SqlServer数据类型</param>
		/// <returns>转换结果</returns>
		public static Type SqlToCsType(string DataType)
		{
			switch (DataType.ToLower())
			{
				case "varchar":
					return typeof(String);
				case "char":
					return typeof(String);
				case "datetime":
					return typeof(DateTime);
				case "text":
					return typeof(String);

				case "int":
					return typeof(Int16);
				case "bit":
					return typeof(Boolean);
				case "float":
					return typeof(Double);
				case "money":
					return typeof(Decimal);
				case "decimal":
					return typeof(Decimal);
			}
			return typeof(String);
		}
		#endregion


		#region public static bool NeedQuot(string DataType) : 判断在sql语句中描述指定类型的数据时是否需要加单引号
		/// <summary>
		/// 判断在sql语句中描述指定类型的数据时是否需要加单引号。
		/// </summary>
		/// <param name="DataType">需要判断的SqlServer数据类型</param>
		/// <returns>判断结果</returns>
		public static bool NeedQuot(string DataType)
		{
			switch (DataType.ToLower())
			{
				case "varchar":
					return true;
				case "char":
					return true;
				case "datetime":
					return true;
				case "text":
					return true;

				case "int":
					return false;
				case "bit":
					return false;
				case "float":
					return false;
				case "money":
					return false;
				case "decimal":
					return false;
			}
			return true;
		}
		#endregion



		#region public static bool TypeIsDateTime(string DataType) : 判断指定SqlServer数据类型是不是日期型
		/// <summary>
		/// 判断指定SqlServer数据类型是不是日期型。
		/// </summary>
		/// <param name="DataType">需要判断的SqlServer数据类型</param>
		/// <returns>判断结果</returns>
		public static bool TypeIsDateTime(string DataType)
		{
			if (DataType.ToLower() == "datetime")
				return true;
			else return false;
		}
		#endregion

		#region public static bool TypeIsMoney(string DataType) : 判断指定SqlServer数据类型是不是货币型
		/// <summary>
		/// 判断指定SqlServer数据类型是不是货币型。
		/// </summary>
		/// <param name="DataType">需要判断的SqlServer数据类型</param>
		/// <returns>判断结果</returns>
		public static bool TypeIsMoney(string DataType)
		{
			if (DataType.ToLower() == "money")
				return true;
			else return false;
		}
		#endregion




		#region 生成一个sql条件,判断指定字段(指定类型)与指定值之间的大小关系

		#region public static string Equal(string FieldName, string DataType, object Value) : 生成一个sql条件,判断指定字段的值等于指定值
		/// <summary>
		/// 生成一个sql条件,判断指定字段等于指定值。
		/// </summary>
		/// <param name="FieldName">字段名</param>
		/// <param name="DataType">字段的数据类型</param>
		/// <param name="Value">作判断基准的值</param>
		/// <returns>sql条件</returns>
		public static string Equal(string FieldName, string DataType, object Value)
		{
			if (TypeIsDateTime(DataType) && CType.IsDateTime(Value,false))
			{
				return DateEqual(FieldName,Convert.ToDateTime(Value));
			}
			else if (TypeIsMoney(DataType) && CType.IsDecimal(Value,false))
			{
				return Equal(FieldName,Convert.ToDecimal(Value));
			}
			else
			{
				return Equal(FieldName,Value);
			}
		}
		#endregion

		#region public static string NotEqual(string FieldName, string DataType, object Value) : 生成一个sql条件,判断指定字段的值不等于指定值
		/// <summary>
		/// 生成一个sql条件,判断指定字段的值不等于指定值。
		/// </summary>
		/// <param name="FieldName">字段名</param>
		/// <param name="DataType">字段的数据类型</param>
		/// <param name="Value">作判断基准的值</param>
		/// <returns>sql条件</returns>
		public static string NotEqual(string FieldName, string DataType, object Value)
		{
			if (TypeIsDateTime(DataType) && CType.IsDateTime(Value,false))
			{
				return DateNotEqual(FieldName,Convert.ToDateTime(Value));
			}
			else if (TypeIsMoney(DataType) && CType.IsDecimal(Value,false))
			{
				return NotEqual(FieldName,Convert.ToDecimal(Value));
			}
			else
			{
				return NotEqual(FieldName,Value);
			}
		}
		#endregion

		#region public static string GreaterThan(string FieldName, string DataType, object ValueLess) : 生成一个sql条件,判断指定字段的值大于指定值
		/// <summary>
		/// 生成一个sql条件,判断指定字段的值大于指定值。
		/// </summary>
		/// <param name="FieldName">字段名</param>
		/// <param name="DataType">字段的数据类型</param>
		/// <param name="ValueLess">作判断基准的值</param>
		/// <returns>sql条件</returns>
		public static string GreaterThan(string FieldName, string DataType, object ValueLess)
		{
			if (TypeIsDateTime(DataType) && CType.IsDateTime(ValueLess,false))
			{
				return DateGreaterThan(FieldName,Convert.ToDateTime(ValueLess));
			}
			else if (TypeIsMoney(DataType) && CType.IsDecimal(ValueLess,false))
			{
				return GreaterThan(FieldName,Convert.ToDecimal(ValueLess));
			}
			else
			{
				return GreaterThan(FieldName,ValueLess);
			}
		}
		#endregion

		#region public static string GreaterEqual(string FieldName, string DataType, object ValueLess) : 生成一个sql条件,判断指定字段的值大于等于指定值
		/// <summary>
		/// 生成一个sql条件,判断指定字段的值大于等于指定值。
		/// </summary>
		/// <param name="FieldName">字段名</param>
		/// <param name="DataType">字段的数据类型</param>
		/// <param name="ValueLess">作判断基准的值</param>
		/// <returns>sql条件</returns>
		public static string GreaterEqual(string FieldName, string DataType, object ValueLess)
		{
			if (TypeIsDateTime(DataType) && CType.IsDateTime(ValueLess,false))
			{
				return DateGreaterEqual(FieldName,Convert.ToDateTime(ValueLess));
			}
			else if (TypeIsMoney(DataType) && CType.IsDecimal(ValueLess,false))
			{
				return GreaterEqual(FieldName,Convert.ToDecimal(ValueLess));
			}
			else
			{
				return GreaterEqual(FieldName,ValueLess);
			}
		}
		#endregion

		#region public static string LessThan(string FieldName, string DataType, object ValueGreater) : 生成一个sql条件,判断指定字段的值小于指定值
		/// <summary>
		/// 生成一个sql条件,判断指定字段的值小于指定值。
		/// </summary>
		/// <param name="FieldName">字段名</param>
		/// <param name="DataType">字段的数据类型</param>
		/// <param name="ValueGreater">作判断基准的值</param>
		/// <returns>sql条件</returns>
		public static string LessThan(string FieldName, string DataType, object ValueGreater)
		{
			if (TypeIsDateTime(DataType) && CType.IsDateTime(ValueGreater,false))
			{
				return DateLessThan(FieldName,Convert.ToDateTime(ValueGreater));
			}
			else if (TypeIsMoney(DataType) && CType.IsDecimal(ValueGreater,false))
			{
				return LessThan(FieldName,Convert.ToDecimal(ValueGreater));
			}
			else
			{
				return LessThan(FieldName,ValueGreater);
			}
		}
		#endregion

		#region public static string LessEqual(string FieldName, string DataType, object ValueGreater) : 生成一个sql条件,判断指定字段的值小于等于指定值
		/// <summary>
		/// 生成一个sql条件,判断指定字段的值小于等于指定值。
		/// </summary>
		/// <param name="FieldName">字段名</param>
		/// <param name="DataType">字段的数据类型</param>
		/// <param name="ValueGreater">作判断基准的值</param>
		/// <returns>sql条件</returns>
		public static string LessEqual(string FieldName, string DataType, object ValueGreater)
		{
			if (TypeIsDateTime(DataType) && CType.IsDateTime(ValueGreater,false))
			{
				return DateLessEqual(FieldName,Convert.ToDateTime(ValueGreater));
			}
			else if (TypeIsMoney(DataType) && CType.IsDecimal(ValueGreater,false))
			{
				return LessEqual(FieldName,Convert.ToDecimal(ValueGreater));
			}
			else
			{
				return LessEqual(FieldName,ValueGreater);
			}
		}
		#endregion

⌨️ 快捷键说明

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