private void LoadOrganizationsByFilter(IOrganizationFilter filter) { System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; var watch = System.Diagnostics.Stopwatch.StartNew(); lastFilter = filter; pageSize = int.Parse(txtbxPageSIze.Text); int amount = db.GetOrganizationsCount(filter); lblOrgCount.Text = String.Format("По вашему запросу найдено {0} организаций", amount); lblCurPage.Text = String.Format("Страница {0} из {1}", curPage, (amount + pageSize - 1) / pageSize); if (curPage == 1) { btnPrevPage.Enabled = false; } else { btnPrevPage.Enabled = true; } if (curPage * pageSize >= amount) { btnNextPage.Enabled = false; } else { btnNextPage.Enabled = true; } lbOrganizations.Items.Clear(); lbOrganizations.Items.AddRange(db.GetOrganizations(filter, (curPage - 1) * pageSize, pageSize).ToArray()); System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Arrow; watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds; lblExecutionTime.Text = "Выполнение запроса заняло " + elapsedMs / 1000.0 + " секунд"; }
public int GetOrganizationsCount(IOrganizationFilter filter) { SqlCommand cmd = new SqlCommand(filter.GetCountQuery(), _conn); return((int)cmd.ExecuteScalar()); }
public List <Organization> GetOrganizations(IOrganizationFilter filter, int offset = 0, int limit = 100) { List <Organization> orgs = OrganizationRepository.GetOrganizations(filter.GetSelectQuery() + " ORDER BY Id OFFSET " + offset + " ROWS FETCH NEXT " + limit + " ROWS ONLY;"); return(orgs); }