Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117

Пагинация для DataGridView

27.02.2018, 14:23. Показов 3996. Ответов 53
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, если кому то не сложно, может у кого то есть код пагинация для datagridview можете подилиться
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.02.2018, 14:23
Ответы с готовыми решениями:

Пагинация для dataGrid
Подскажите пожалуйста с чего начать или в каком направлении двигаться , имеется dataGrid в него выводится результат SQL-запроса, ...

Обычная пагинация или пагинация на ajax
Всем сеошникам привет! Ребята, создается блог на вордпрессе и встал вопрос о выборе пагинации: обычной < 1 2 3 > или на аяксе, с...

Пагинация для сайта
помогите есть код вывода из базы данных текст. <?php include("/db_connection.php"); if(isset($_GET)){ $sqlQuery =...

53
Эксперт .NET
 Аватар для Usaga
14750 / 9525 / 1364
Регистрация: 21.01.2016
Сообщений: 35,944
28.02.2018, 11:16
Студворк — интернет-сервис помощи студентам
Matroskin_Kot, я уже сказал: ставьте именно нужный пакет (как на скрине, шестью миллионами закачек) и именно версии 1.42. Я только что специально проверил: оно на 4.0 ставится.
1
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
28.02.2018, 12:54  [ТС]
сейчас попробую, наверное я и правда что то не так ставлю

Добавлено через 5 минут
Уставновил )))

Добавлено через 1 час 32 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
Matroskin_Kot, я уже сказал: ставьте именно нужный пакет (как на скрине, шестью миллионами закачек) и именно версии 1.42. Я только что специально проверил: оно на 4.0 ставится.
Вроде не много разобралься с dappter но не могу понять одну вешь у меня в бд такие поля
id, name, text,
Я создаю класс
C#
1
2
3
4
5
6
7
8
9
10
11
12
   public class People
    {
        public int Id { get; set; }
 
         public string Text { get; set; }
 
       
 
        public string Name { get; set; }
 
 
    }
Подскажите иминовать свойста надо с большой буквы или как в БД ?
0
Эксперт .NET
 Аватар для Usaga
14750 / 9525 / 1364
Регистрация: 21.01.2016
Сообщений: 35,944
28.02.2018, 12:59
Matroskin_Kot, можно с любой, даппер разберётся.
1
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
28.02.2018, 15:32  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Matroskin_Kot, можно с любой, даппер разберётся.
Спасибо больше )

Добавлено через 1 час 41 минуту
Цитата Сообщение от Usaga Посмотреть сообщение
Matroskin_Kot, можно с любой, даппер разберётся.
Огромное вам спасибо, я сделал на написал код в c помощью Dapper, вообще супер штука, не надо использовать адаптер все работает да и код проще,
Вот создал класс для работы с таблицой
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace RegistrationOfUsers
{
    public class People
    {
        public int Id { get; set; }
 
        public int Year { get; set; }
 
        public int Number { get; set; }
 
        public string Name { get; set; }
 
        public int Date { get; set; }
 
        public string Vidil { get; set; }
 
        public string Vpo { get; set; }
 
        public string Invalde { get; set; }
 
        public string Datareg { get; set; }
 
        public string Home { get; set; }
 
 
    }
}
и вот для подключение к БД
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Data.SQLite;
using Dapper;
using System.IO;
using System.Data;
 
namespace RegistrationOfUsers
{
    public static class DataService
    {
        private static string path = CFolder.FolderFile("DataBase"); // Папка где храниться БД
 
        private static string databaseName = "people.db"; // Имя базы данных
 
        private static string path_db = path + "/" + databaseName; // Папка + БД
 
        private static string connect_db = string.Format("Data Source={0};", path_db);
 
        private static int year = DateTime.Now.Year; // Текущей год
 
        static DataService()
        {
 
            if (DataBaseFileExists() == false)
            {
                CFolder.CreateForlders(path);
 
 
 
                SQLiteConnection.CreateFile(path + "/" + databaseName);
 
                CreateTable();
            }
 
        }
 
        //Выборка всех пользователей 
        public static List<People> GetAll()
        {
            using (SQLiteConnection db = new SQLiteConnection(connect_db))
            {
                if(db.State == ConnectionState.Closed)
                {
                    db.Open();
                }
 
                return db.Query<People>("select Id, Year, Number, Name, Date, Vidil, Vpo, Invalde, Datareg, Home from people").ToList();
            }
        }
 
 
        //Проверка и создание БД методы
        //Метод создание таблици
 
        private static void CreateTable()
        {
 
 
            SQLiteConnection connection = new SQLiteConnection(connect_db);
 
            SQLiteCommand command =
            new SQLiteCommand("CREATE TABLE `people` (`id`  INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE, `year` INTEGER NOT NULL, `number` INTEGER NOT NULL, `name`    TEXT NOT NULL, `date`   INTEGER NOT NULL, `vidil` TEXT NOT NULL, `vpo`  TEXT NOT NULL, `invalde` TEXT NOT NULL, `datareg` TEXT NOT NULL, `home` TEXT NOT NULL); ", connection);
 
            connection.Open();
 
            command.ExecuteNonQuery();
 
            connection.Close();
        }
 
 
        //Проверка существует ли файл БД
 
        private static bool DataBaseFileExists()
        {
            if (File.Exists(path_db))
            {
                return true;
            }
 
            return false;
 
        }
 
 
    }
}
Еще раз вам спасибо, осталось только с пагинацей разобраться,
P.S. а EnntyFramework по такому принципу тоже работает ?
0
Эксперт .NET
 Аватар для Usaga
14750 / 9525 / 1364
Регистрация: 21.01.2016
Сообщений: 35,944
28.02.2018, 15:48
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
а EnntyFramework по такому принципу тоже работает ?
EF умеет не только "мапить" запросы на классы, но и сам текст запроса генерировать. Удобная штука.
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
01.03.2018, 13:51  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
EF умеет не только "мапить" запросы на классы, но и сам текст запроса генерировать. Удобная штука.
Доброе утро, я на гитхабе нашел готовое решение пагинаци, не много не могу разобраться, почему она у меня не работает,
вот класс который я сделал для выборки данных
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Data.SQLite;
using Dapper;
using System.IO;
using System.Data;
 
namespace RegistrationOfUsers
{
    public static class DataService
    {
        private static string path = CFolder.FolderFile("DataBase"); // Папка где храниться БД
 
        private static string databaseName = "people.db"; // Имя базы данных
 
        private static string path_db = path + "/" + databaseName; // Папка + БД
 
        private static string connect_db = string.Format("Data Source={0};", path_db);
 
        private static int year = DateTime.Now.Year; // Текущей год
 
        static DataService()
        {
 
            if (DataBaseFileExists() == false)
            {
                CFolder.CreateForlders(path);
 
 
 
                SQLiteConnection.CreateFile(path + "/" + databaseName);
 
                CreateTable();
            }
 
        }
 
        //Выборка всех пользователей 
        public static List<People> GetAllPaginav(int MaxRecords, int PageOffset)
        {
            using (SQLiteConnection db = new SQLiteConnection(connect_db))
            {
                if(db.State == ConnectionState.Closed)
                {
                    db.Open();
                }
 
                return db.Query<People>("select Id, Year, Number, Name, Date, Vidil, Vpo, Invalde, Datareg, Home from people LIMIT " + MaxRecords + " OFFSET " + PageOffset).ToList();
            }
        }
 
        public static List<People> GetAll()
        {
            using (SQLiteConnection db = new SQLiteConnection(connect_db))
            {
                if (db.State == ConnectionState.Closed)
                {
                    db.Open();
                }
 
                return db.Query<People>("select Id, Year, Number, Name, Date, Vidil, Vpo, Invalde, Datareg, Home from people ").ToList();
            }
        }
 
        //Проверка и создание БД методы
        //Метод создание таблици
 
        private static void CreateTable()
        {
 
 
            SQLiteConnection connection = new SQLiteConnection(connect_db);
 
            SQLiteCommand command =
            new SQLiteCommand("CREATE TABLE `people` (`id`  INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE, `year` INTEGER NOT NULL, `number` INTEGER NOT NULL, `name`    TEXT NOT NULL, `date`   INTEGER NOT NULL, `vidil` TEXT NOT NULL, `vpo`  TEXT NOT NULL, `invalde` TEXT NOT NULL, `datareg` TEXT NOT NULL, `home` TEXT NOT NULL); ", connection);
 
            connection.Open();
 
            command.ExecuteNonQuery();
 
            connection.Close();
        }
 
 
        //Проверка существует ли файл БД
 
        private static bool DataBaseFileExists()
        {
            if (File.Exists(path_db))
            {
                return true;
            }
 
            return false;
 
        }
 
 
    }
}
А вот код формы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 public partial class FormMain : Form
    {
        public FormMain()
        {
            InitializeComponent();
 
            this.dataGridViewPaging1.RequestQueryData += new In.Sontx.SimpleDataGridViewPaging.RequestQueryDataEventHandler(dataGridViewPaging1_RequestQueryData);
        }
 
        private void dataGridViewPaging1_RequestQueryData(object sender, RequestQueryDataEventArgs e)
        {
            dataGridViewPaging1.DataSource = DataService.GetAllPaginav(e.MaxRecords, e.PageOffset);
        }
 
        private void FormMain_Load(object sender, EventArgs e)
        {
           
 
            this.WindowState = FormWindowState.Maximized;
 
            CFolder.CreatFolder(); // Создаем каталог для работы программы
 
            dataGridViewMain.DataSource = DataService.GetAll();
 
            //this.TitleDataGridView();
 
            dataGridViewPaging1.DataSource = DataService.GetAll();
           
 
        }
 
        
 
        private void выходToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Close();
        }
 
       
 
       
    }
Просто выборка идет, а вот почему не работает пагинация, не могу разобраться (
0
Эксперт .NET
 Аватар для Usaga
14750 / 9525 / 1364
Регистрация: 21.01.2016
Сообщений: 35,944
01.03.2018, 13:54
Matroskin_Kot, почему вы опять запросы конкатенацией формируете? Вам Dapper на что?

Отладчиком смотрели что происходит? Запросы корректные уходят в базу? Ответы ожидаемые (страничные выборки) приходят? Ответы байндятся назад в грид?
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
01.03.2018, 13:57  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Отладчиком смотрели что происходит? Запросы корректные уходят в базу? Ответы ожидаемые (страничные выборки) приходят? Ответы байндятся назад в грид?
А можно я вам отправлю проект а вы глянете ?
0
Эксперт .NET
 Аватар для Usaga
14750 / 9525 / 1364
Регистрация: 21.01.2016
Сообщений: 35,944
01.03.2018, 14:01
Matroskin_Kot, не. Я верю в ваши силы. Я верю, что вы сможете поставить точку останова (brakepoint) в обработчике нажатия кнопки "Далее" и, шаг за шагом, посмотреть что происходит.
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
01.03.2018, 14:04  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Matroskin_Kot, не. Я верю в ваши силы. Я верю, что вы сможете поставить точку останова (brakepoint) в обработчике нажатия кнопки "Далее" и, шаг за шагом, посмотреть что происходит.
А где надо поставить точку остановки ? я ставил где запрос
0
Эксперт .NET
 Аватар для Usaga
14750 / 9525 / 1364
Регистрация: 21.01.2016
Сообщений: 35,944
01.03.2018, 14:06
Matroskin_Kot, я выше уже написал: в обработчике события кнопки, которая работает на так как вам надо. Оттуда и пляшите.
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
01.03.2018, 14:07  [ТС]
я не много не пойму как его код там работает, я пагинацию задаю для общего датегрудвью ?
0
Эксперт .NET
 Аватар для Usaga
14750 / 9525 / 1364
Регистрация: 21.01.2016
Сообщений: 35,944
01.03.2018, 14:09
Matroskin_Kot, если вы ничего не понимаете в своей программе, то чем я-то вам смогу помочь?) Я даже не понял что вы сделали и как и как проявляется ваше "не работает".
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
01.03.2018, 14:14  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
если вы ничего не понимаете в своей программе, то чем я-то вам смогу помочь?) Я даже не понял что вы сделали и как и как проявляется ваше "не работает".
в гид хабе не могу понять как работает программу
0
Эксперт .NET
 Аватар для Usaga
14750 / 9525 / 1364
Регистрация: 21.01.2016
Сообщений: 35,944
01.03.2018, 14:16
Matroskin_Kot, вы можете сказать ЧТО не работает?
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
01.03.2018, 14:20  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
вы можете сказать ЧТО не работает?
Смотрите у меня просто выводятся, все таблица но не работает кнопки пагинации
0
Эксперт .NET
 Аватар для Usaga
14750 / 9525 / 1364
Регистрация: 21.01.2016
Сообщений: 35,944
01.03.2018, 14:21
Matroskin_Kot, вот поэтому я и порекомендовал поставить точку останова в обработчике нажатия одной из кнопок и посмотреть что происходит.
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
01.03.2018, 14:24  [ТС]
Как бы кнопки пагинации идут комплектом (
0
Эксперт .NET
 Аватар для Usaga
14750 / 9525 / 1364
Регистрация: 21.01.2016
Сообщений: 35,944
01.03.2018, 14:26
Matroskin_Kot, вам что мешает отладчиком воспользоваться? Вы на ютюбе не можете видосик посмотреть о том, как в Visual Studio отладчиком пользоваться? Или вам интереснее одно, да по одному тут писать?
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
01.03.2018, 15:03  [ТС]
Ставил я точки остановки, не дают результата во время одладки не чего не происходит
я подписался на событие при загрузки формы
C#
1
this.dataGridViewPaging1.RequestQueryData += new In.Sontx.SimpleDataGridViewPaging.RequestQueryDataEventHandler(dataGridViewPaging1_RequestQueryData);
И сделал обработчик
C#
1
2
3
4
private void dataGridViewPaging1_RequestQueryData(object sender, RequestQueryDataEventArgs e)
        {
            dataGridViewPaging1.DataSource = DataService.GetAllPaginav(e.MaxRecords, e.PageOffset);
        }
реализация метода GetAllPaginav
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        //Выборка всех пользователей 
        public static List<People> GetAllPaginav(int MaxRecords, int PageOffset)
        {
            using (SQLiteConnection db = new SQLiteConnection(connect_db))
            {
                if(db.State == ConnectionState.Closed)
                {
                    db.Open();
                }
 
                //return db.Query<People>("select Id, Year, Number, Name, Date, Vidil, Vpo, Invalde, Datareg, Home from people LIMIT " + MaxRecords + " OFFSET " + PageOffset).ToList();
 
                return db.Query<People>("select Id, Year, Number, Name, Date, Vidil, Vpo, Invalde, Datareg, Home from people").ToList();
            }
        }
Ставил я точки, программа до них не доходит
На данный момент у меня пустаю форма dataGridViewPaging1 без данных

Добавлено через 10 минут
Походу не отработал метод
C#
1
2
3
4
 private void dataGridViewPaging1_RequestQueryData(object sender, RequestQueryDataEventArgs e)
        {
            dataGridViewPaging1.DataSource = DataService.GetAllPaginav(e.MaxRecords, e.PageOffset);
        }
Добавлено через 6 минут
Может я как то не правельно подписываюсь на событие ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.03.2018, 15:03

Пагинация для сайта
Есть такой код пагинации(ниже). Вопрос, как сделать так, что последнее слово перенести на след строку? Тоесть пагинация в оригинле...

Пагинация для sql выборки
Доброго времени суток, товарищи, подскажите или направьте на путь истиный, вожусь с постраничным выводом. Вроде бы сделал, но только на...

Пагинация для текста выводимой новости из БД
Как сделать пагинацию текста выводимой новости из БД? Допустим есть 1050 слов, как сделать так чтобы 1050 слов делились на 11 страниц? (по...

Пагинация для произвольных типов записей
Всем привет. Использую произвольный тип записей и вывожу их на странице (home.php) вот так: &lt;?php query_posts() ?&gt; &lt;?php...

Пагинация для пользовательского типа записи?
Проблема такая. Имеется пользовательский тип записи, для него нужно вывести пагинацию. Мучаюсь уже неделю, то пагинация выводится но не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru