AddISelectItemWithEntityFieldInfo|实现添加指定字段做select

  • 
    
    
            /// <summary>
            /// 获得输出的SQL语句
            /// </summary>
            /// <param name="xdbHelper"></param>
            /// <returns></returns>
            protected override string TheSQLGet(DBHelper xdbHelper)
            {
                string theResult = null;
    
                // 标识是否创建或打开数据库链接 //
                bool bIsCreate = true;
    
                if (xdbHelper == null)
                {
                    // 如果 xdbHelper 为null //
                    // 则new一个数据库操作实体 //
                    xdbHelper
                        =
                        SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
                }
                else
                {
                    // 如果 xdbHelper 不为null //
                    // 判断 xdbHelper是否打开链接 //
                    // 相当于是否执行 xdbHelper.OpenDBHelper(); //
                    bIsCreate = xdbHelper.IsNotOpen();
                }
    
                try
                {
                    if (bIsCreate)
                    {
                        // 没有打开,则打开链接 //
                        xdbHelper.OpenDBHelper();
                    }
    
                    // 业务逻辑操作实体 //
                    // insert/update/delete等操作 //
                    SlowX.ExamLib.Business.UTB_EXAM_CLASS
                       bll
                       =
                       SlowX.ExamLib.Business.UTB_EXAM_CLASS.instance;
    
                    // 组合SQL的逻辑实体 //
                    SlowX.ExamLib.Entity.UTB_EXAM_CLASS
                        entity
                        =
                        new ExamLib.Entity.UTB_EXAM_CLASS();
    
                    // select相关的方法 //
                    ISelectDriver iselect = entity;
    
                    // Order By 排序的相关方法
                    IOrderByDriver iorder = entity;
    
                    iselect.AddISelectItemWithEntityFieldInfo(entity._TheName);
    
                    iorder.AddIOrderByItemWithEntityFieldInfo(entity._ID);
    
                    // 执行List操作 //
                    // 这里做DEMO,仅打印输出的SQL语句 //
                    // bll.List(entity, xdbHelper);
    
                    // 
                    theResult
                        =
                        bll.i_iBuildSQL.BuildSqlList(entity, xdbHelper);
    
    
                    if (bIsCreate)
                    {
                        // 关闭数据库链接 //
                        // 如果用了事务,提交数据库链接 //
                        xdbHelper.EndDBHelper();
                    }
                }
                catch (Exception err)
                {
                    if (bIsCreate)
                    {
                        // 关闭数据库链接 //
                        // 如果用了事务,回滚数据库链接 //
                        xdbHelper.TranDBHelper();
                    }
    
                    throw err;
                }
                finally
                {
                    if (bIsCreate)
                    {
                        // 判断数据库操作是否正确关闭 //
                        // 如果没有正确关闭,则关闭并抛出异常提示代码缺陷 //
                        xdbHelper.FinallyDBHelper();
                    }
                }
    
                return theResult;
            }
    
    
    
  • 
    select 
    t.TheName as TheName
    from UTB_EXAM_CLASS t
    order by 
    t.ID asc
    
    
    
    select 
    t.TheName as TheName
    from UTB_EXAM_CLASS t
    order by 
    t.ID asc
    
    
    
    
    
    
    
  •  
    
    
            /// <summary>
            /// 添加Select - AddISelectItemWithEntityFieldInfo +
            /// </summary>
            /// <param name="_info">数据库字段实体</param>
            public void AddISelectItemWithEntityFieldInfo
                (
                    EntityFieldInfo _info 
                )
            {
                if (m_ListISelectItem == null)
                    m_ListISelectItem = new List<ISelectItem>();
    
                m_ListISelectItem.Add
                   (
                       new DataColumnSelectItem
                           (
                            _info 
                           )
                   );
    
            }