/// <summary>
        /// Gets a SQL WHERE clause from the parameters and comparison type
        /// </summary>
        internal static string WhereClauseFromParameters(SqlParameter[] sqlParams, GetRecordOperator comparison)
        {
            if (sqlParams.FirstOrDefault(p => string.IsNullOrWhiteSpace(p.SourceColumn)) != null)
            {
                throw new DataException("All source columns must be defined");
            }
            foreach (SqlParameter p in sqlParams)
            {
                if (p.ParameterName == "")
                {
                    p.ParameterName = "@" + p.SourceColumn.Replace(" ", "_");
                }
                if (p.ParameterName.Substring(0, 1) != "@")
                {
                    p.ParameterName = "@" + p.ParameterName;
                }
            }

            string sql    = "where ";
            string clause = (comparison == GetRecordOperator.And) ? " and ": " or ";

            bool first = true;

            foreach (SqlParameter p in sqlParams)
            {
                if (!first)
                {
                    sql += clause;
                }
                sql += "[" + p.SourceColumn + "] ";
                if (p.Value == null)
                {
                    sql += "is null";
                }
                else
                {
                    sql += "= " + p.ParameterName;
                }
                first = false;
            }

            return(sql);
        }
Example #2
0
        /// <summary>
        /// Gets a SQL WHERE clause from the parameters and comparison type
        /// </summary>
        internal static string WhereClauseFromParameters(SqlParameter[] sqlParams, GetRecordOperator comparison)
        {
            if (sqlParams.FirstOrDefault(p => string.IsNullOrWhiteSpace(p.SourceColumn)) != null) throw new DataException("All source columns must be defined");
            foreach(SqlParameter p in sqlParams)
            {
                if (p.ParameterName == "") p.ParameterName = "@" + p.SourceColumn.Replace(" ", "_");
                if (p.ParameterName.Substring(0, 1) != "@") p.ParameterName = "@" + p.ParameterName;
            }

            string sql = "where ";
            string clause = (comparison == GetRecordOperator.And) ? " and ": " or ";

            bool first = true;
            foreach(SqlParameter p in sqlParams)
            {
                if (!first) sql += clause;
                sql += "[" + p.SourceColumn + "] ";
                if(p.Value == null)
                {
                    sql += "is null";
                }else
                {
                    sql += "= " + p.ParameterName;
                }
                first = false;
            }

            return sql;
        }
Example #3
0
        protected static T GetRecord(SqlParameter[] parameters, GetRecordOperator comparison, bool loadChildren)
        {
            string sql = "select * from " + FindDummy(typeof(T)).FullSafeTableName + " " + WhereClauseFromParameters(parameters, comparison);

            return(GetRecord(sql, parameters, loadChildren));
        }
Example #4
0
 protected static T GetRecord(SqlParameter[] parameters, GetRecordOperator comparison)
 {
     return(GetRecord(parameters, comparison, LOADCHILDRENDEFAULT));
 }
Example #5
0
 protected static T GetRecord(List <SqlParameter> parameters, GetRecordOperator comparison, bool loadChildren)
 {
     return(GetRecord(parameters.ToArray(), comparison, loadChildren));
 }
Example #6
0
 protected static T GetRecord(List <SqlParameter> parameters, GetRecordOperator comparison)
 {
     return(GetRecord(parameters.ToArray(), comparison, LOADCHILDRENDEFAULT));
 }