AddISaveItem|添加保存语句

  • 
    
    
            /// <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();
    
                    // insert/update的设置值 //
                    ISaveDriver isave = entity;
                    // 查询逻辑 //
                    IQueryDriver iq = entity;
    
                    // 形如:thename = @thename (slowx) // 
                    isave.AddISaveItem(entity._TheName, "slowx");
                    // 形如:id=@id (1) //
                    iq.AddIQueryItemWithEntityFieldInfo(entity._ID, 1);
    
                    // 执行Update操作 //
                    // 这里做DEMO,仅打印输出的SQL语句 //
                    // bll.Update(entity, xdbHelper);
    
                    // 
                    theResult
                        =
                        bll.i_iBuildSQL.BuildSqlUpdate(entity, xdbHelper);
    
    
                    if (bIsCreate)
                    {
                        // 关闭数据库链接 //
                        // 如果用了事务,提交数据库链接 //
                        xdbHelper.EndDBHelper();
                    }
                }
                catch (Exception err)
                {
                    if (bIsCreate)
                    {
                        // 关闭数据库链接 //
                        // 如果用了事务,回滚数据库链接 //
                        xdbHelper.TranDBHelper();
                    }
    
                    throw err;
                }
                finally
                {
                    if (bIsCreate)
                    {
                        // 判断数据库操作是否正确关闭 //
                        // 如果没有正确关闭,则关闭并抛出异常提示代码缺陷 //
                        xdbHelper.FinallyDBHelper();
                    }
                }
    
                return theResult;
            }
    
    
    
  • 
    update 
    UTB_EXAM_CLASS
    set 
    TheName='slowx'
    where 
    ID = 1
    
    @TheName = 'slowx'
    @p1 = 1
    
    
    update 
    UTB_EXAM_CLASS
    set 
    TheName=@TheName
    where 
    ID = @p1
    
    @TheName 	 slowx 	 String 	 Input 	 SqlParameter
    
    @p1 	 1 	 Int32 	 Input 	 SqlParameter
    
    
    
    
    
    
    
  •  
    
    
            /// <summary>
            /// 添加保存语句 - AddISaveItem +
            /// </summary>
            /// <param name="_info"></param>
            /// <param name="_theValue"></param>
            public void AddISaveItem
                (
                    EntityFieldInfo _info,
                    object _theValue
                )
            {
                string _name = _info._Name.ToLower();
    
                if (m_DictionaryISaveItem.ContainsKey(_name))
                {
                    ISaveItem isaveItemValue 
                        = 
                        m_DictionaryISaveItem[_name];
    
                    isaveItemValue.theValue = _theValue;
                }
                else
                {
                    m_DictionaryISaveItem.Add
                        (
                            _name, 
                            new SaveItem(_info, _theValue)
                        );
                }
            }