Example #1
0
        /// <summary>
        /// 失败返回null
        /// </summary>
        public override T Select <T>(DbSession session, SelectBuilder selectBuilder)
        {
            if (selectBuilder == null)
            {
                throw new NotImplementedException("缺少有效的" + nameof(SelectBuilder));
            }
            T         result  = new T();
            DbCommand command = session.CreateCommand();

            command.CommandText = selectBuilder.ToQueryString(session, new T().TableName);
            selectBuilder.AddParameter(command, session);
            WriteQueryLog(command, session);
            using (var reader = session.ExecuteDataReader(command))
            {
                if (reader.Read())
                {
                    var fields = selectBuilder.ComponentSelect.GetSelectFields();
                    if (fields.Count() == 0)
                    {
                        result.Init(reader);
                    }
                    else
                    {
                        result.Init(reader, fields);
                    }
                    return(result);
                }
                else
                {
                    return(null);
                }
            }
        }
Example #2
0
        /// <summary>
        /// 未查询到数据时返回 null
        /// </summary>
        public override string SelectAsString <T>(DbSession session, SelectBuilder selectBuilder)
        {
            if (selectBuilder == null)
            {
                throw new NotImplementedException("缺少有效的" + nameof(SelectBuilder));
            }
            DbCommand command = session.CreateCommand();

            command.CommandText = selectBuilder.ToQueryString(session, new T().TableName);
            selectBuilder.AddParameter(command, session);
            WriteQueryLog(command, session);
            var data = session.ExecuteScalar(command);

            if (data != null)
            {
                return(data.ToString());
            }
            else
            {
                return(null);
            }
        }
Example #3
0
        /// <summary>
        /// 未查询到数据时返回 null
        /// </summary>
        public override DateTime?SelectAsDateTime <T>(SelectBuilder selectBuilder)
        {
            if (selectBuilder == null)
            {
                throw new NotImplementedException("缺少有效的" + nameof(SelectBuilder));
            }
            DbCommand command = Session.CreateCommand();

            command.CommandText = selectBuilder.ToQueryString(Session, new T().TableName);
            selectBuilder.AddParameter(command, Session);
            WriteQueryLog(command, Session);
            var      data = Session.ExecuteScalar(command);
            DateTime result;

            if (data != null && DateTime.TryParse(data.ToString(), out result))
            {
                return(result);
            }
            else
            {
                return(null);
            }
        }