📄 csql.cs
字号:
/*
* 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 + -