Argentini.Halide.H3Reader.ReadByPage C# (CSharp) Méthode

ReadByPage() private méthode

Used by the constructor to read in a page of results.
private ReadByPage ( string commandText, string WhereClause, string OrderByClause, Int32 PerPage, Int32 PageNum ) : void
commandText string
WhereClause string
OrderByClause string
PerPage System.Int32
PageNum System.Int32
Résultat void
        private void ReadByPage(string commandText, string WhereClause, string OrderByClause, Int32 PerPage, Int32 PageNum)
        {
            string template = "WITH VIRTUAL_HALIDE_ROWSET AS (SELECT ROW_NUMBER() OVER( ORDER BY [ORDERBY] ) AS ROWNUMBER, * FROM ([SELECT]) AS ML_HALIDE WHERE [WHERECLAUSE]) SELECT * FROM VIRTUAL_HALIDE_ROWSET WHERE ROWNUMBER BETWEEN CONVERT(varchar, [BEGINRECORD]) and CONVERT(varchar, [ENDRECORD]);";

            if (PerPage > 0 && PageNum > 0)
            {
                template = template.Replace("[ORDERBY]", OrderByClause);
                template = template.Replace("[SELECT]", commandText);
                template = template.Replace("[WHERECLAUSE]", WhereClause);

                Int32 beginRecord = (PerPage * PageNum) - PerPage + 1;
                Int32 endRecord = (PerPage * PageNum);

                template = template.Replace("[BEGINRECORD]", beginRecord.ToString());
                template = template.Replace("[ENDRECORD]", endRecord.ToString());

                sqlCommandString = template;

                try
                {
                    cn = new SqlConnection();
                    cn.ConnectionString = ConnectionString;
                    cn.Open();
                    cmd = new SqlCommand();
                    cmd.Connection = cn;
                    cmd.CommandTimeout = 0;
                    cmd.CommandText = template;
                    dr = cmd.ExecuteReader();
                }

                catch (Exception err)
                {
                    _lastSqlError = err;
                }
            }
        }