Ejemplo n.º 1
0
        /// <summary>
        /// 生成创建视图SQL语句
        /// </summary>
        /// <param name="viewName"></param>
        /// <param name="command"></param>
        private void GetBulidViewString(string viewName, SqlCommand command)
        {
            string        baseString = "CREATE VIEW ";
            StringBuilder result     = new StringBuilder();

            result.Append(baseString);
            result.Append(viewName);
            result.Append(" AS SELECT ");

            foreach (var item in _needFields)
            {
                result.Append(TranslateHelper.GetFieldString(item));
            }
            result.Remove(result.Length - 1, 1);

            result.Append(" FROM ");
            result.Append(TranslateHelper.GetJoinConditionString(_needFields, _joinCriterion));

            command.Parameters.Clear();
            command.CommandText = result.ToString();
        }
Ejemplo n.º 2
0
        public static void TranslateIntoComplexQuery(ComplexQuery complexQuery, SqlCommand command)
        {
            string        baseString = "SELECT ";
            StringBuilder result     = new StringBuilder();

            result.Append(baseString);

            if (complexQuery.IsDictinct == true)
            {
                result.Append("DISTINCT ");
            }

            if (complexQuery.TopNumber != 0)
            {
                result.Append(TranslateHelper.GetTopNumber(complexQuery.TopNumber));
            }

            foreach (var item in complexQuery.NeedFields)
            {
                result.Append(TranslateHelper.GetFieldString(item));
            }
            result.Remove(result.Length - 1, 1);

            result.Append(TranslateHelper.GetJoinConditionString(complexQuery.NeedFields, complexQuery.JoinCriterion));

            if (complexQuery.Criterions.Count() > 0)
            {
                TranslateHelper.GetCriterionString(result, complexQuery.Criterions, command, complexQuery.SqlOperator);
            }

            if (complexQuery.OrderByClauses.Count > 0)
            {
                result.Append(TranslateHelper.GetStringFromOrderByClause(complexQuery.OrderByClauses));
            }

            command.CommandText = result.ToString();
        }