Exemplo n.º 1
0
    public void LoadTable(DataTable table, int startRowIndex, int rows, out int totalrows)
    {
        int fieldCount = this.IDataReader.FieldCount;

        for (int i = 0; i < fieldCount; i++)
        {
            table.Columns.Add(this.IDataReader.GetName(i), this.IDataReader.GetFieldType(i));
        }

        //Skip rows
        int perfixRows = 0;

        while (perfixRows < startRowIndex)
        {
            if (!this.Read())
            {
                break;
            }
            perfixRows++;
        }

        //读取数据
        if (rows == -1)
        {
            while (this.Read())
            {
                DataRow row = table.NewRow();
                table.Rows.Add(row);
                for (int j = 0; j < this.IDataReader.FieldCount; j++)
                {
                    object value = YZReader.GetValue(this.IDataReader, j);
                    row[j] = value;
                }
            }
        }
        else
        {
            for (int k = 0; k < rows; k++)
            {
                if (!this.Read())
                {
                    break;
                }
                DataRow row = table.NewRow();
                table.Rows.Add(row);
                for (int m = 0; m < this.IDataReader.FieldCount; m++)
                {
                    object value = YZReader.GetValue(this.IDataReader, m);
                    row[m] = value;
                }
            }
        }

        //后面的行数
        int postRows = 0;

        while (this.Read())
        {
            postRows++;
        }
        totalrows = (perfixRows + table.Rows.Count) + postRows;
    }