예제 #1
0
        /// <summary>
        /// 删除公司
        /// </summary>
        /// <param name="companyId">公司ID</param>
        /// <param name="tran">中间事务对象</param>
        public void Delete(string companyId, ICTransaction tran)
        {
            CompanySearcher querySearcher = new CompanySearcher();

            querySearcher.CompanyId.Equal(companyId);
            this.Delete(querySearcher, tran);
        }
예제 #2
0
        /// <summary>
        /// 查找指定条件的公司分页集合
        /// </summary>
        /// <param name="companySearcher">公司查询对象</param>
        /// <param name="pager">分页对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的对象集合</returns>
        public PageList <Company> FindList(CompanySearcher companySearcher, Pager pager, ICTransaction tran)
        {
            CompanySearcher      querySearcher = null;
            HibernateTransaction hTran         = null;
            ISession             session       = null;
            PageList <Company>   pList         = new PageList <Company>();
            HQLQueryParser       queryParser   = new HQLQueryParser();
            StringBuilder        query         = new StringBuilder();

            query.AppendLine("SELECT ");
            query.AppendLine("   C ");
            query.AppendLine("FROM ");
            query.AppendLine("   Company C ");

            if (companySearcher != null)
            {
                querySearcher           = (CompanySearcher)companySearcher.Clone();
                querySearcher.TableName = "C";
            }

            queryParser.SearcherParse(querySearcher);

            if (!string.IsNullOrEmpty(queryParser.ConditionString))
            {
                query.AppendLine("WHERE ");
                query.AppendLine("   " + queryParser.ConditionString);
            }

            if (!string.IsNullOrEmpty(queryParser.SortString))
            {
                query.AppendLine("ORDER BY ");
                query.AppendLine("   " + queryParser.SortString);
            }

            if (tran != null)
            {
                hTran            = (HibernateTransaction)tran;
                session          = hTran.CurrentSession;
                pList.TotalCount = this.Count(querySearcher, tran);
            }
            else
            {
                session          = this.CurrentHibernateConfig.GetCurrentSession();
                pList.TotalCount = this.Count(querySearcher);
            }

            if (pager != null)
            {
                pList.RecordList = HibernateHelper.FindObjectListByHQL <Company>(session, query.ToString(), queryParser.ParamCollection, pager);
            }
            else
            {
                pList.RecordList = HibernateHelper.FindObjectListByHQL <Company>(session, query.ToString(), queryParser.ParamCollection);
            }

            return(pList);
        }
예제 #3
0
        /// <summary>
        /// 查找指定ID的公司
        /// </summary>
        /// <param name="companyId">公司ID</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回公司实体对象</returns>
        public Company FindSingle(string companyId, ICTransaction tran)
        {
            CompanySearcher companySearcher = new CompanySearcher();

            companySearcher.CompanyId.Equal(companyId);
            IList <Company> companyList = this.FindList(companySearcher);

            return((companyList == null || companyList.Count == 0) ? null : companyList[0]);
        }
예제 #4
0
        /// <summary>
        /// 根据指定条件查找公司分页集合
        /// </summary>
        /// <param name="companySearcher">公司查询对象</param>
        /// <param name="pager">分页对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的DataTable数据</returns>
        public PageDataTable FindDataTable(CompanySearcher companySearcher, Pager pager, ICTransaction tran)
        {
            PageDataTable      pDataTable  = null;
            PageList <Company> companyList = this.FindList(companySearcher, pager, tran);

            if (companyList != null)
            {
                pDataTable.PageIndex  = companyList.PageIndex;
                pDataTable.TotalCount = companyList.TotalCount;
                pDataTable.RecordList = new DataTable("Company");
                pDataTable.RecordList.Columns.AddRange(new DataColumn[] {
                    new DataColumn("Address", typeof(String)),
                    new DataColumn("CompanyCode", typeof(String)),
                    new DataColumn("CompanyId", typeof(String)),
                    new DataColumn("CreaterId", typeof(String)),
                    new DataColumn("CreateTime", typeof(DateTime)),
                    new DataColumn("Name", typeof(String)),
                    new DataColumn("ParentCompanyId", typeof(String)),
                    new DataColumn("RVersion", typeof(Int32)),
                    new DataColumn("Status", typeof(Int32)),
                    new DataColumn("UpdateTime", typeof(DateTime)),
                    new DataColumn("UpdatorId", typeof(String))
                });

                foreach (Company company in companyList.RecordList)
                {
                    pDataTable.RecordList.Rows.Add(
                        company.Address,
                        company.CompanyCode,
                        company.CompanyId,
                        company.CreaterId,
                        company.CreateTime,
                        company.Name,
                        company.ParentCompany == null ? null : company.ParentCompany.CompanyId,
                        company.RVersion,
                        company.Status,
                        company.UpdateTime,
                        company.UpdatorId
                        );
                }
            }

            return(pDataTable);
        }
예제 #5
0
        /// <summary>
        /// 根据指定条件删除公司
        /// </summary>
        /// <param name="companySearcher">公司查询对象</param>
        /// <param name="tran">中间事务对象</param>
        public void Delete(CompanySearcher companySearcher, ICTransaction tran)
        {
            int              effectCount   = 0;
            CompanySearcher  querySearcher = null;
            MssqlQueryParser queryParser   = new MssqlQueryParser();
            StringBuilder    query         = new StringBuilder();

            query.AppendLine(@"DELETE FROM ");
            query.AppendLine(@"   Company ");

            if (companySearcher != null)
            {
                querySearcher           = (CompanySearcher)companySearcher.Clone();
                querySearcher.TableName = "C";
            }

            queryParser.SearcherParse(querySearcher);

            if (!string.IsNullOrEmpty(queryParser.ConditionString))
            {
                query.AppendLine(@"WHERE ");
                query.AppendLine(@"   " + queryParser.ConditionString);
            }

            try
            {
                if (tran != null)
                {
                    DbTransaction dbTran = ((MssqlTransaction)tran).CurrentTransaction;
                    effectCount = MssqlHelper.ExecuteNonQuery(dbTran, CommandType.Text, query.ToString(), queryParser.ParamCollection);
                }
                else
                {
                    effectCount = MssqlHelper.ExecuteNonQuery(this.CurrentConnectionString, CommandType.Text, query.ToString(), queryParser.ParamCollection);
                }
            }
            catch (SqlException sex)
            {
                if (sex.ErrorCode == (int)ResultCode.FKError)
                {
                    throw new ResponseException((int)ResultCode.FKError, "DELETE Company");
                }
            }
        }
예제 #6
0
        /// <summary>
        /// 查询公司数量
        /// </summary>
        /// <param name="companySearcher">公司查询对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回查询到的数量</returns>
        public long Count(CompanySearcher companySearcher, ICTransaction tran)
        {
            CompanySearcher      querySearcher = null;
            HibernateTransaction hTran         = null;
            ISession             session       = null;
            HQLQueryParser       queryParser   = new HQLQueryParser();
            StringBuilder        query         = new StringBuilder();

            query.Append("SELECT ");
            query.Append("  COUNT(*) ");
            query.Append("FROM ");
            query.Append("  Company C ");

            if (companySearcher != null)
            {
                querySearcher           = (CompanySearcher)companySearcher.Clone();
                querySearcher.TableName = "C";
            }

            queryParser.SearcherParse(querySearcher);

            if (!string.IsNullOrEmpty(queryParser.ConditionString))
            {
                query.Append("WHERE ");
                query.Append("  " + queryParser.ConditionString);
            }

            if (tran != null)
            {
                hTran   = (HibernateTransaction)tran;
                session = hTran.CurrentSession;
            }
            else
            {
                session = this.CurrentHibernateConfig.GetCurrentSession();
            }

            long count = HibernateHelper.FindUniqueObjectByHQL <long>(session, query.ToString(), queryParser.ParamCollection);

            return(count);
        }
예제 #7
0
        /// <summary>
        /// 查询公司数量
        /// </summary>
        /// <param name="companySearcher">公司查询对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回查询到的数量</returns>
        public long Count(CompanySearcher companySearcher, ICTransaction tran)
        {
            object           count         = 0;
            long             result        = 0;
            CompanySearcher  querySearcher = null;
            MssqlQueryParser queryParser   = new MssqlQueryParser();
            StringBuilder    query         = new StringBuilder();

            query.AppendLine(@"SELECT ");
            query.AppendLine(@"   COUNT(C.CompanyId) ");
            query.AppendLine(@"FROM ");
            query.AppendLine(@"   Company C ");

            if (companySearcher != null)
            {
                querySearcher           = (CompanySearcher)companySearcher.Clone();
                querySearcher.TableName = "C";
            }

            queryParser.SearcherParse(querySearcher);

            if (!string.IsNullOrEmpty(queryParser.ConditionString))
            {
                query.AppendLine(@"WHERE ");
                query.AppendLine(@"   " + queryParser.ConditionString);
            }

            if (tran != null)
            {
                DbTransaction dbTran = ((MssqlTransaction)tran).CurrentTransaction;
                count = MssqlHelper.ExecuteScalar(dbTran, CommandType.Text, query.ToString(), queryParser.ParamCollection);
            }
            else
            {
                count = MssqlHelper.ExecuteScalar(this.CurrentConnectionString, CommandType.Text, query.ToString(), queryParser.ParamCollection);
            }

            return(long.TryParse(count.ToString(), out result) ? result : 0);
        }
예제 #8
0
        /// <summary>
        /// 根据指定条件删除公司
        /// </summary>
        /// <param name="companySearcher">公司查询对象</param>
        /// <param name="tran">中间事务对象</param>
        public void Delete(CompanySearcher companySearcher, ICTransaction tran)
        {
            CompanySearcher      querySearcher = null;
            HibernateTransaction hTran         = null;
            ISession             session       = null;
            HQLQueryParser       queryParser   = new HQLQueryParser();
            StringBuilder        query         = new StringBuilder();

            query.AppendLine("DELETE FROM ");
            query.AppendLine("   Company C ");

            if (companySearcher != null)
            {
                querySearcher           = (CompanySearcher)companySearcher.Clone();
                querySearcher.TableName = "C";
            }

            queryParser.SearcherParse(querySearcher);

            if (!string.IsNullOrEmpty(queryParser.ConditionString))
            {
                query.AppendLine("WHERE ");
                query.AppendLine("   " + queryParser.ConditionString);
            }

            if (tran != null)
            {
                hTran   = (HibernateTransaction)tran;
                session = hTran.CurrentSession;
            }
            else
            {
                session = this.CurrentHibernateConfig.GetCurrentSession();
            }

            int effectCount = HibernateHelper.DeleteObjectByHQL(session, query.ToString(), queryParser.ParamCollection);
        }
예제 #9
0
 /// <summary>
 /// 根据指定条件删除公司
 /// </summary>
 /// <param name="companySearcher">公司查询对象</param>
 /// <param name="tran">中间事务对象</param>
 public static void DeleteCompany(CompanySearcher companySearcher, ICTransaction tran)
 {
     CompanyDal.Delete(companySearcher, tran);
 }
예제 #10
0
 /// <summary>
 /// 根据指定条件删除公司
 /// </summary>
 /// <param name="companySearcher">公司查询对象</param>
 public void Delete(CompanySearcher companySearcher)
 {
     this.Delete(companySearcher, null);
 }
예제 #11
0
 /// <summary>
 /// 查询公司数量
 /// </summary>
 /// <param name="companySearcher">公司查询对象</param>
 /// <returns>返回查询到的数量</returns>
 public long Count(CompanySearcher companySearcher)
 {
     return(this.Count(companySearcher, null));
 }
예제 #12
0
 /// <summary>
 /// 根据指定条件查找公司分页集合
 /// </summary>
 /// <param name="companySearcher">公司查询对象</param>
 /// <param name="pager">分页对象</param>
 /// <param name="tran">中间事务对象</param>
 /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的DataTable数据</returns>
 public static PageDataTable FindCompanyDataTable(CompanySearcher companySearcher, Pager pager, ICTransaction tran)
 {
     return(CompanyDal.FindDataTable(companySearcher, pager, tran));
 }
예제 #13
0
 /// <summary>
 /// 根据指定条件查找公司分页集合
 /// </summary>
 /// <param name="companySearcher">公司查询对象</param>
 /// <param name="pager">分页对象</param>
 /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的DataTable数据</returns>
 public static PageDataTable FindCompanyDataTable(CompanySearcher companySearcher, Pager pager)
 {
     return(CompanyDal.FindDataTable(companySearcher, pager));
 }
예제 #14
0
 /// <summary>
 /// 根据指定条件查找公司分页集合
 /// </summary>
 /// <param name="companySearcher">公司查询对象</param>
 /// <param name="pager">分页对象</param>
 /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的DataTable数据</returns>
 public PageDataTable FindDataTable(CompanySearcher companySearcher, Pager pager)
 {
     return(this.FindDataTable(companySearcher, pager, null));
 }
예제 #15
0
 /// <summary>
 /// 查找指定条件的公司分页集合
 /// </summary>
 /// <param name="companySearcher">公司查询对象</param>
 /// <param name="pager">分页对象</param>
 /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的对象集合</returns>
 public PageList <Company> FindList(CompanySearcher companySearcher, Pager pager)
 {
     return(this.FindList(companySearcher, pager, null));
 }
예제 #16
0
        /// <summary>
        /// 根据指定条件查找公司集合
        /// </summary>
        /// <param name="companySearcher">公司查询对象</param>
        /// <returns>返回一个DataTable对象</returns>
        public DataTable FindDataTable(CompanySearcher companySearcher)
        {
            PageDataTable pageDataTable = this.FindDataTable(companySearcher, null, null);

            return(pageDataTable == null ? null : pageDataTable.RecordList);
        }
예제 #17
0
        /// <summary>
        /// 查找指定条件的公司集合
        /// </summary>
        /// <param name="companySearcher">公司查询对象</param>
        /// <returns>返回公司实体对象集合</returns>
        public IList <Company> FindList(CompanySearcher companySearcher)
        {
            PageList <Company> pageList = this.FindList(companySearcher, null, null);

            return(pageList == null ? null : pageList.RecordList);
        }
예제 #18
0
 /// <summary>
 /// 根据指定条件删除公司
 /// </summary>
 /// <param name="companySearcher">公司查询对象</param>
 public static void DeleteCompany(CompanySearcher companySearcher)
 {
     CompanyDal.Delete(companySearcher);
 }
예제 #19
0
        /// <summary>
        /// 查询公司数量
        /// </summary>
        /// <param name="companySearcher">公司查询对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回查询到的数量</returns>
        public static long CountCompany(CompanySearcher companySearcher, ICTransaction tran)
        {
            long count = CompanyDal.Count(companySearcher, tran);

            return(count);
        }
예제 #20
0
        /// <summary>
        /// 查询公司数量
        /// </summary>
        /// <param name="companySearcher">公司查询对象</param>
        /// <returns>返回查询到的数量</returns>
        public static long CountCompany(CompanySearcher companySearcher)
        {
            long count = CompanyDal.Count(companySearcher);

            return(count);
        }
예제 #21
0
        /// <summary>
        /// 根据指定条件查找公司分页集合
        /// </summary>
        /// <param name="companySearcher">公司查询对象</param>
        /// <param name="pager">分页对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的DataTable数据</returns>
        public PageDataTable FindDataTable(CompanySearcher companySearcher, Pager pager, ICTransaction tran)
        {
            CompanySearcher  querySearcher  = null;
            MssqlQueryParser queryParser    = new MssqlQueryParser();
            PageDataTable    pDataTable     = new PageDataTable();
            DataSet          resultSet      = null;
            StringBuilder    query          = new StringBuilder();
            StringBuilder    conditionQuery = new StringBuilder();
            StringBuilder    sortQuery      = new StringBuilder();

            if (companySearcher != null)
            {
                querySearcher           = (CompanySearcher)companySearcher.Clone();
                querySearcher.TableName = "C";
            }

            queryParser.SearcherParse(querySearcher);

            if (!string.IsNullOrEmpty(queryParser.ConditionString))
            {
                conditionQuery.AppendLine(@"WHERE ");
                conditionQuery.AppendLine(@"   " + queryParser.ConditionString);
            }

            if (!string.IsNullOrEmpty(queryParser.SortString))
            {
                sortQuery.AppendLine(@"ORDER BY ");
                sortQuery.AppendLine(@"   " + queryParser.SortString);
            }

            query.AppendLine(@"SELECT ");
            query.AppendLine(@"   C.[CompanyId] ");
            query.AppendLine(@"  ,C.[CompanyCode] ");
            query.AppendLine(@"  ,C.[Name] ");
            query.AppendLine(@"  ,C.[Address] ");
            query.AppendLine(@"  ,C.[ParentCompanyId] ");
            query.AppendLine(@"  ,C.[RVersion] ");
            query.AppendLine(@"  ,C.[Status] ");
            query.AppendLine(@"  ,C.[CreaterId] ");
            query.AppendLine(@"  ,C.[CreateTime] ");
            query.AppendLine(@"  ,C.[UpdatorId] ");
            query.AppendLine(@"  ,C.[UpdateTime] ");
            query.AppendLine(@"FROM ");
            query.AppendLine(@"   [Company] C ");
            query.AppendLine(conditionQuery.ToString());
            query.AppendLine(sortQuery.ToString());
            query.AppendLine(@"; ");

            if (tran != null)
            {
                DbTransaction dbTran = ((MssqlTransaction)tran).CurrentTransaction;

                if (pager != null)
                {
                    resultSet = MssqlHelper.ExecuteDataSet(dbTran, CommandType.Text, query.ToString(), pager, "Company", queryParser.ParamCollection);
                }
                else
                {
                    resultSet = MssqlHelper.ExecuteDataSet(dbTran, CommandType.Text, query.ToString(), queryParser.ParamCollection);
                }
            }
            else
            {
                if (pager != null)
                {
                    resultSet = MssqlHelper.ExecuteDataSet(this.CurrentConnectionString, CommandType.Text, query.ToString(), pager, "Company", queryParser.ParamCollection);
                }
                else
                {
                    resultSet = MssqlHelper.ExecuteDataSet(this.CurrentConnectionString, CommandType.Text, query.ToString(), queryParser.ParamCollection);
                }
            }

            if (resultSet != null)
            {
                if (pager != null)
                {
                    pDataTable.PageIndex = pager.CurrentPage;
                }

                pDataTable.TotalCount = this.Count(companySearcher, tran);
                pDataTable.RecordList = resultSet.Tables[0];
            }

            return(pDataTable);
        }
예제 #22
0
        /// <summary>
        /// 查找指定条件的公司集合
        /// </summary>
        /// <param name="companySearcher">公司查询对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回公司实体对象集合</returns>
        public IList <Company> FindList(CompanySearcher companySearcher, ICTransaction tran)
        {
            PageList <Company> pageList = this.FindList(companySearcher, null, tran);

            return(pageList == null ? null : pageList.RecordList);
        }
예제 #23
0
 /// <summary>
 /// 查找指定条件的公司集合
 /// </summary>
 /// <param name="companySearcher">公司查询对象</param>
 /// <returns>返回公司实体对象集合</returns>
 public static IList <Company> FindCompanyList(CompanySearcher companySearcher)
 {
     return(CompanyDal.FindList(companySearcher));
 }
예제 #24
0
        /// <summary>
        /// 查找指定条件的公司分页集合
        /// </summary>
        /// <param name="companySearcher">公司查询对象</param>
        /// <param name="pager">分页对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的对象集合</returns>
        public PageList <Company> FindList(CompanySearcher companySearcher, Pager pager, ICTransaction tran)
        {
            PageList <Company> resultList    = new PageList <Company>();
            PageDataTable      pageDataTable = this.FindDataTable(companySearcher, pager, tran);
            Company            ele           = null;

            if (pageDataTable != null)
            {
                resultList            = new PageList <Company>();
                resultList.PageIndex  = pageDataTable.PageIndex;
                resultList.TotalCount = pageDataTable.TotalCount;

                if (pageDataTable.RecordList != null && pageDataTable.RecordList.Rows.Count > 0)
                {
                    foreach (DataRow aRow in pageDataTable.RecordList.Rows)
                    {
                        ele = new Company();

                        if (!(aRow["CompanyId"] is DBNull))
                        {
                            ele.CompanyId = aRow["CompanyId"].ToString();
                        }

                        if (!(aRow["Address"] is DBNull))
                        {
                            ele.Address = aRow["Address"].ToString();
                        }

                        if (!(aRow["CompanyCode"] is DBNull))
                        {
                            ele.CompanyCode = aRow["CompanyCode"].ToString();
                        }

                        if (!(aRow["CreaterId"] is DBNull))
                        {
                            ele.CreaterId = aRow["CreaterId"].ToString();
                        }

                        if (!(aRow["CreateTime"] is DBNull))
                        {
                            ele.CreateTime = Convert.ToDateTime(aRow["CreateTime"]);
                        }

                        if (!(aRow["Name"] is DBNull))
                        {
                            ele.Name = aRow["Name"].ToString();
                        }

                        if (!(aRow["ParentCompanyId"] is DBNull))
                        {
                            ele.ParentCompanyId = aRow["ParentCompanyId"].ToString();
                        }

                        if (!(aRow["RVersion"] is DBNull))
                        {
                            ele.RVersion = Convert.ToInt32(aRow["RVersion"]);
                        }

                        if (!(aRow["Status"] is DBNull))
                        {
                            ele.Status = Convert.ToInt32(aRow["Status"]);
                        }

                        if (!(aRow["UpdateTime"] is DBNull))
                        {
                            ele.UpdateTime = Convert.ToDateTime(aRow["UpdateTime"]);
                        }

                        if (!(aRow["UpdatorId"] is DBNull))
                        {
                            ele.UpdatorId = aRow["UpdatorId"].ToString();
                        }

                        resultList.RecordList.Add(ele);
                    }
                }
            }

            return(resultList);
        }
예제 #25
0
 /// <summary>
 /// 查找指定条件的公司分页集合
 /// </summary>
 /// <param name="companySearcher">公司查询对象</param>
 /// <param name="pager">分页对象</param>
 /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的对象集合</returns>
 public static PageList <Company> FindCompanyList(CompanySearcher companySearcher, Pager pager)
 {
     return(CompanyDal.FindList(companySearcher, pager));
 }
예제 #26
0
        /// <summary>
        /// 根据指定条件查找公司集合
        /// </summary>
        /// <param name="companySearcher">公司查询对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回一个DataTable对象</returns>
        public DataTable FindDataTable(CompanySearcher companySearcher, ICTransaction tran)
        {
            PageDataTable pageDataTable = this.FindDataTable(companySearcher, null, tran);

            return(pageDataTable == null ? null : pageDataTable.RecordList);
        }
예제 #27
0
 /// <summary>
 /// 查找指定条件的公司分页集合
 /// </summary>
 /// <param name="companySearcher">公司查询对象</param>
 /// <param name="pager">分页对象</param>
 /// <param name="tran">中间事务对象</param>
 /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的对象集合</returns>
 public static PageList <Company> FindCompanyList(CompanySearcher companySearcher, Pager pager, ICTransaction tran)
 {
     return(CompanyDal.FindList(companySearcher, pager, tran));
 }
예제 #28
0
        /// <summary>
        /// 根据指定条件查找公司分页集合
        /// </summary>
        /// <param name="companySearcher">公司查询对象</param>
        /// <param name="pager">分页对象</param>
        /// <param name="tran">中间事务对象</param>
        /// <returns>返回查找到的分页集合,包括按条件可查询到的所有记录数和当前分页的DataTable数据</returns>
        public PageDataTable FindDataTable(CompanySearcher companySearcher, Pager pager, ICTransaction tran)
        {
            CompanySearcher  querySearcher  = null;
            MysqlQueryParser queryParser    = new MysqlQueryParser();
            PageDataTable    pDataTable     = new PageDataTable();
            DataSet          resultSet      = null;
            StringBuilder    query          = new StringBuilder();
            StringBuilder    conditionQuery = new StringBuilder();
            StringBuilder    sortQuery      = new StringBuilder();

            if (companySearcher != null)
            {
                querySearcher           = (CompanySearcher)companySearcher.Clone();
                querySearcher.TableName = "C";
            }

            queryParser.SearcherParse(querySearcher);

            if (!string.IsNullOrEmpty(queryParser.ConditionString))
            {
                conditionQuery.AppendLine(@"WHERE ");
                conditionQuery.AppendLine(@"   " + queryParser.ConditionString);
            }

            if (!string.IsNullOrEmpty(queryParser.SortString))
            {
                sortQuery.AppendLine(@"ORDER BY ");
                sortQuery.AppendLine(@"   " + queryParser.SortString);
            }

            query.AppendLine(@"SELECT ");
            query.AppendLine(@"   C.`CompanyId` ");
            query.AppendLine(@"  ,C.`CompanyCode` ");
            query.AppendLine(@"  ,C.`Name` ");
            query.AppendLine(@"  ,C.`Address` ");
            query.AppendLine(@"  ,C.`ParentCompanyId` ");
            query.AppendLine(@"  ,C.`RVersion` ");
            query.AppendLine(@"  ,C.`Status` ");
            query.AppendLine(@"  ,C.`CreaterId` ");
            query.AppendLine(@"  ,C.`CreateTime` ");
            query.AppendLine(@"  ,C.`UpdatorId` ");
            query.AppendLine(@"  ,C.`UpdateTime` ");
            query.AppendLine(@"FROM ");
            query.AppendLine(@"   `Company` C ");
            query.AppendLine(conditionQuery.ToString());
            query.AppendLine(sortQuery.ToString());

            if (pager != null && pager.PageSize != 0 && pager.StartRecord >= 0)
            {
                query.AppendLine(@" LIMIT " + pager.StartRecord.ToString() + "," + pager.PageSize + " ");
            }

            query.AppendLine(@"; ");

            if (tran != null)
            {
                resultSet = MySqlHelper.ExecuteDataset((MySqlConnection)tran.Connection, query.ToString(), queryParser.ParamCollection.ToArray());
            }
            else
            {
                resultSet = MySqlHelper.ExecuteDataset(this.CurrentConnectionString, query.ToString(), queryParser.ParamCollection.ToArray());
            }

            if (resultSet != null)
            {
                if (pager != null)
                {
                    pDataTable.PageIndex = pager.CurrentPage;
                }

                pDataTable.TotalCount = this.Count(companySearcher, tran);
                pDataTable.RecordList = resultSet.Tables[0];
            }

            return(pDataTable);
        }
예제 #29
0
 /// <summary>
 /// 根据指定条件查找公司集合
 /// </summary>
 /// <param name="companySearcher">公司查询对象</param>
 /// <returns>返回一个DataTable对象</returns>
 public static DataTable FindCompanyDataTable(CompanySearcher companySearcher)
 {
     return(CompanyDal.FindDataTable(companySearcher));
 }