//方便用来拼接sql的 不知道用处大不大,,有测试后 有很多bug 待改进 欢迎指出
public abstract class CreateSQLWhere
{
/// <summary>
/// 查询时默认条件
/// </summary>
public static string DefaultText = "";
/// <summary>
/// 查询条件汇总
/// </summary>
public static string SQLText = "";
/// <summary>
/// 查询表及其字段
/// </summary>
public static string SQL = "";
public static bool AllRecord;
/// <summary>
/// T-SQL拼接
/// </summary>
/// <param name="Text">sql</param>
/// <returns>T-SQL</returns>
public static string AddParam(string Text)
{
bool bl = false;
bl = !((DefaultText.Length == 0) && (SQL.Length == 0));
return SQLText = (SQLText + (bl ? " and " : " where ") + Text);
}
/// <summary>
/// 比较字段与要查询的值
/// </summary>
/// <param name="FieldName">字段名</param>
/// <param name="Value1">值1</param>
/// <param name="Value2">值2</param>
/// <returns>T-SQL</returns>
public static string AddParamStr(string FieldName, string Value1,string Value2)
{
string str = null;
string sql = "";
//V = Value.Trim();
if (Value1.Length != 0 && Value1 != "*")
{
str = FieldName + ">= '" + Value1 + "'";
}
if (Value2.Length != 0 && Value2 != "*")
{
if (str.Length != 0)
{
str = str + " and " + FieldName + "<= '" + Value2 + "'";
}
else
{
str = FieldName + "<= '" + Value2 + "'";
}
}
if (str != "")
{
sql = AddParam(str);
}
return sql;
}
/// <summary>
/// Int类型查询
/// </summary>
/// <param name="FieldName">字段名</param>
/// <param name="val">数值</param>
/// <returns>T-SQL</returns>
public static string AddParamInt(string FieldName, int val)
{
return AddParam(FieldName + " = " + val.ToString());
}
/// <summary>
/// Int类型数值2者之前查询(FieldName between 值1 and 值2)
/// </summary>
/// <param name="FieldName">字段名</param>
/// <param name="value1">值1</param>
/// <param name="value2">值2</param>
/// <returns>T-SQL</returns>
public static string AddParamInt(string FieldName, int value1, int value2)
{
return AddParam(FieldName + " Between " + value1.ToString() + " and " + value2.ToString());
}
/// <summary>
/// Float类型数值2者之前查询
/// </summary>
/// <param name="FieldName">字段名</param>
/// <param name="value1">值1</param>
/// <param name="value2">值2</param>
/// <returns>T-SQL</returns>
public static string AddParamFoalt(string FieldName, double value1, double value2)
{
return AddParam(string.Format("{0} between {1} and {2}", FieldName, value1, value2));
}
/// <summary>
/// Float类型查询
/// </summary>
/// <param name="FieldName">字段名</param>
/// <param name="value">值</param>
/// <returns>T-SQL</returns>
public static string AddParamFoalt(string FieldName, double value)
{
return AddParam(string.Format("{0} = {1}", FieldName, value));
}
/// <summary>
/// 字段值在条件之间(FieldName between 值1 and 值2)
/// </summary>
/// <param name="FieldName">字段名</param>
/// <param name="value1">值1</param>
/// <param name="value2">值2</param>
/// <returns>T-SQL</returns>
public static string AddParamStrBt(string FieldName, string value1, string value2)
{
return AddParam(FieldName + " Between '" + value1 + "' and '" + value2 + "'");
}
/// <summary>
/// 字段值为布尔值查询
/// </summary>
/// <param name="FieldName">字段名</param>
/// <param name="value">Bool值</param>
/// <returns>T-SQL</returns>
public static string AddParamBool(string FieldName, bool value)
{
return AddParam(FieldName + (value ? "=1" : "=0"));
}
/// <summary>
/// 查询在时间段之内
/// </summary>
/// <param name="FieldName">字段名</param>
/// <param name="value1">时间值1</param>
/// <param name="value2">时间值2</param>
/// <returns>T-SQL</returns>
public static string AddParamDate(string FieldName, DateTime value1, DateTime value2)
{
return AddParam(FieldName + "Between '" + value1.ToString() + "' and '" + value2.ToString() + "'");
}
/// <summary>
/// 查询在某个特定的时间
/// </summary>
/// <param name="FieldName">字段名</param>
/// <param name="value">时间值</param>
/// <returns>T-SQL</returns>
public static string AddParamDate(string FieldName, DateTime value)
{
return AddParam(FieldName + " ='" + value.ToString() + "'");
}
/// <summary>
/// 获取拼接后的T-SQL
/// </summary>
/// <returns>T-SQL</returns>
public static string GetSQLText()
{
string Text = "";
if (CreateSQLWhere.SQL.Length == 0)
{
Text = SQLText;
}
else
{
Text = SQL + SQLText;
}
return Text;
}
}
未完待续。。。。。。