/// <summary> /// Devuelve el tipo de operador (LIKE, IS NULL, IS NOT NULL, EQUALS, =,...) con las condiciones pasadas por params:<para/> /// EWhereComparisson wherecomparissontype -> tipo de operador (LIKE, IS NULL, IS NOT NULL, EQUALS, =,...)<para/> /// </summary> /// <param name="wherecomparissontype"></param> /// <returns></returns> public static string SqlBuilderWhereComparissonType(EWhereComparisson wherecomparissontype) { string sqlWhereClause = string.Empty; switch (wherecomparissontype) { case EWhereComparisson.WHITESPACE: sqlWhereClause += " "; break; case EWhereComparisson.ISNULL: sqlWhereClause += " IS NULL "; break; case EWhereComparisson.ISNOTNULL: sqlWhereClause += " IS NOT NULL "; break; case EWhereComparisson.LIKE: sqlWhereClause += " LIKE "; break; case EWhereComparisson.NOTLIKE: sqlWhereClause += " NOT LIKE "; break; case EWhereComparisson.EQUALS: sqlWhereClause += " = "; break; case EWhereComparisson.NOTEQUALS: sqlWhereClause += " <> "; break; case EWhereComparisson.GREATEROREQUALS: sqlWhereClause += " >= "; break; case EWhereComparisson.GREATERTHAN: sqlWhereClause += " > "; break; case EWhereComparisson.LESSOREQUALS: sqlWhereClause += " <= "; break; case EWhereComparisson.LESSTHAN: sqlWhereClause += " < "; break; case EWhereComparisson.IN: sqlWhereClause += " IN "; break; default: break; } return(sqlWhereClause); }
/// <summary> /// Crea la cláusula WHERE con la condición pasada por params:<para/> /// EWhereLogicOperator -> tipo de operador lógico para WHERE múltiples (WHITESPACE, AND, OR)<para/> /// string -> columna a comparar<para/> /// EWhereComparisson -> tipo de comparación (LIKE, IS NULL, IS NOT NULL, =,...)<para/> /// ETipoDato -> Dependiendo del tipo de valor, añadirá comillas simples (strings, char,...) + valor, o sólo el valor (numéricos)<para/> /// string -> valor a comparar<para/> /// </summary> /// <param name="wherelogicoperator"></param> /// <param name="column"></param> /// <param name="wherecomparissontype"></param> /// <param name="wherecomparissonvaluetype"></param> /// <param name="value"></param> /// <returns></returns> public static string SqlBuilderWhereOneRegister(EWhereLogicOperator wherelogicoperator, string column, EWhereComparisson wherecomparissontype, ETipoDato wherecomparissonvaluetype, string value) { string sqlWhereClause = string.Empty; //Tipo de operador lógico para WHERE múltiples sqlWhereClause += SqlBuilderWhereLogicOperator(wherelogicoperator); //Nombre de la columna a comparar sqlWhereClause += column; //Tipo de comparación sqlWhereClause += SqlBuilderWhereComparissonType(wherecomparissontype); if (wherecomparissontype != EWhereComparisson.ISNULL && wherecomparissontype != EWhereComparisson.ISNOTNULL) { //Dependiendo del tipo de valor, añadirá comillas simples (strings, char,...) + valor, o sólo el valor (numéricos) string wherecomparissonvalue = value.Equals(string.Empty) || value == null || value[0] == ' ' ? "%" : value; sqlWhereClause += SqlBuilderWhereComparissonValue(wherecomparissonvaluetype, wherecomparissonvalue); } return(sqlWhereClause.Replace(" ", " ")); //eliminamos el exceso de caracteres en blanco }