public static DataSet Query(string Sql, SqlParameter[] para, int startRecord = 0, int maxRecords = 0) { DataSet ds = new DataSet(); using (SqlConnection conn = new SqlConnection(Config.ConnStr)) { conn.Open(); using (SqlDataAdapter da = new SqlDataAdapter()) { SqlTransaction tran = conn.BeginTransaction(); da.SelectCommand = new SqlCommand(Sql, conn, tran); if (para != null) { da.SelectCommand.Parameters.AddRange(para); } try { da.Fill(ds, "defaultName"); if (maxRecords > 0) { da.Fill(ds, startRecord * maxRecords, maxRecords, "tableCurrentRows"); DataTable dt = SetPageCount(ds.Tables["defaultName"].Rows.Count, maxRecords); ds.Tables.Add(dt); ds.Tables.Remove("defaultName"); } tran.Commit(); } catch (Exception e) { tran.Rollback(); throw e; } } } return ds; } private static DataTable SetPageCount(int rowsCount, int pageSize) { DataTable dtNew = new DataTable("pageCount"); int pageCount = 0; if (rowsCount % pageSize > 0) { pageCount = rowsCount / pageSize + 1; } else { pageCount = rowsCount / pageSize; } //获取列集合,添加列 DataColumnCollection columns = dtNew.Columns; columns.Add("page", typeof(int)); //添加一行数据 DataRow row = dtNew.NewRow(); row["page"] = pageCount; dtNew.Rows.Add(row); return dtNew; }