Использование списка как источника данных для DataGridView

Всем привет!
Есть List data
и myDataGridView.DataSource = data;
Имеется ~100 сообщений (уже с известным текстом), эти сообщения хранятся в data.
А так же известны номера сообщений которые необходимо будет отобразить в DataGridView, например сообщение №26,35,48,43,5,92.
Количество отображаемых сообщений могут отличаться.
Что-то на ровном месте остановился. Как в проще отобразить эти данные в DataGridView.
У меня мысль только создать таблицу в DataSet, сделать SQL запрос, и полученные данные отобразить в DataGridView.
Но боюсь мне руки оторвут за такое.
Спасибо.
| Здесь вы можете заказать любую студенческую или школьную работу. |
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Синхронизировать индексы источника данных (списка) и списка в ListBox
Здраствуйте уважаемые программиисты! Столкнулся с такой задачей: имеется список продуктов.
Использование данных из dataGridView для отображения на карте
Есть такая проблема. В Form1 создан gMapControl1private void gMapControl1_Load(object sender.

Как программно указать БД в качестве источника данных для DataGridView?
Как сделать это кодом а не через десигнер? Т.е. данные из бд нужно занести в DataGridView уже в.
DataGridView и добавление источника данных
В чем проблема? Есть два DataGriedView. 1. Добавляю к первому источник данных bindingSource. .
Добавление данных в DataGridView + .тхт

Всем привет подскажите можно ли как то добавлять данные в текстовый файл из самого приложения
Есть button который добавляет данные из текстового файла в dataGrid и нужно в него же (текстовый файл) добавлять новые данные.
Обычным методом добавления не получается вылезает исключение, что добавлять нельзя т.к управ. элемент привязан к данным (Рисунок 1)
Код добавления такой:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
private void button12_Click_1(object sender, EventArgs e) { string iname; string iqurty; string ipry; double total = 0; iname = textBox1.Text; iqurty = textBox2.Text; ipry = textBox3.Text; try { total = Convert.ToDouble(iqurty) * Convert.ToDouble(ipry); } catch { } dataGridView1.Rows.Add(iname, iqurty, ipry, total.ToString()); }
Но повторюсь с текстовыми файлами такое не работает
P.s работать с бд возможности нет, поэтому приходится изворачиваться
Лучшие ответы ( 1 )
| Здесь вы можете заказать любую студенческую или школьную работу. |
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Добавление данных из DataGridView в базу данных access
Нужно добавить все строки, кроме заголовков столбцов из DataGridView в базу данных access.
Добавление данных в DataGridView
Доброго времени суток! При добавлении данных в дата грид выдаёт ошибку Необработанное.
Добавление данных в БД dataGridView
В БД dataGridView пытаюсь добавить данные через textBox (БД из Access) string name =.
Добавление данных в DataGridView
Здравствуйте! Есть две формы на одной DataGridView1 к ней подключен запрос через источник данных.
Регистрация: 31.05.2020
Сообщений: 160
Регистрация: 31.05.2020
Сообщений: 160
Проблема всё ещё актуальна.
1496 / 1238 / 244
Регистрация: 04.04.2011
Сообщений: 4,362
Грид отображает датасет. Любой. Если он связан с не редактируемым датасетом, например результатом выполнения запроса Select, то напрямую его редактировать нельзя. Для этого нужно использовать адаптер, в котором написать соответствующий код.
Вы читать напрочь отказываетесь и лезете сюда с первыми же мелочными ошибками, разобраться с которыми самостоятельно совсем нетрудно, было бы желание.
Регистрация: 31.05.2020
Сообщений: 160
было бы просто не задавал бы вопросов, вся информация в интернете в основном связана с БД
Что за адаптер, что за код информации нет
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856

Сообщение было отмечено Nub_ как решение
Решение
Сообщение от Nub_ 
Обычным методом добавления не получается вылезает исключение, что добавлять нельзя т.к управ. элемент привязан к данным (Рисунок 1)
добавляйте к источнику данных
DataGridView подхватит изменения сам и отобразит актуальную информацию
в этом и есть суть привязок))
Регистрация: 31.05.2020
Сообщений: 160
Ну т.е есть вот код добавления в датагрид из «источника»
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
private void button1_Click(object sender, EventArgs e) { StreamReader rd = new StreamReader(@"C:\1.txt", Encoding.GetEncoding(1251)); DataSet ds = new DataSet(); ds.Tables.Add("Score"); string header = rd.ReadLine(); string[] col = System.Text.RegularExpressions.Regex.Split(header, ","); for (int c = 0; c col.Length; c++) { ds.Tables[0].Columns.Add(col[c]); } string row = rd.ReadLine(); while (row != null) { string[] rvalue = System.Text.RegularExpressions.Regex.Split(row, ","); ds.Tables[0].Rows.Add(rvalue); row = rd.ReadLine(); } dataGridView1.DataSource = ds.Tables[0]; }
Типо в этот же текстовик(источник) добавлять данные?
А не подскажите как сделать формат добавления подобный: » йцу, кцк, ыпы», т.е чтобы после добавления в датагрид корректно отображалось
C#: DataGridView и примеры работы с ним

Сегодня я решил написать Вам о том, как работать с элементом управления DataGridView в языке программирования C#.
DataGridView — очень мощный инструмент для работы с данными. Он очень гибок и позволяет автоматизировать вывод информации. Я постараюсь рассказать Вам о базовой работе с данным элементом, а так же привести пример автоматизации обновления данных в таблице.
Для тех, кто не знает о элементе управления DataGridView — скажу что данный контрол позволяет вывести таблицу с данными в Вашей программе. Данный элемент управления имеет огромное число настроек. Благодаря этому Вы скорей всего сможете подстроить внешний вид таблицы так, как Вам нужно. Все настройки доступны в панели свойств элемента в Visual Studio. Я буду задавать свойства нашего элемента пряма в коде, для большей наглядности.
И так создадим новый проект WinForms и добавим на форму элемент DataGridView. При добавлении элемента DataGridView появляется окно, где можно указать источник данных для нашей таблицы. Просто закроем данное окно. Перейдем в событие загрузки формы и зададим шапку для нашей таблицы.
private void Form1_Load(object sender, EventArgs e) < //создадим таблицу вывода товаров с колонками //Название, Цена, Остаток var column1 = new DataGridViewColumn(); column1.HeaderText = "Название"; //текст в шапке column1.Width = 100; //ширина колонки column1.ReadOnly = true; //значение в этой колонке нельзя править column1.Name = "name"; //текстовое имя колонки, его можно использовать вместо обращений по индексу column1.Frozen = true; //флаг, что данная колонка всегда отображается на своем месте column1.CellTemplate = new DataGridViewTextBoxCell(); //тип нашей колонки var column2 = new DataGridViewColumn(); column2.HeaderText = "Цена"; column2.Name = "price"; column2.CellTemplate = new DataGridViewTextBoxCell(); var column3 = new DataGridViewColumn(); column3.HeaderText = "Остаток"; column3.Name = "count"; column3.CellTemplate = new DataGridViewTextBoxCell(); dataGridView1.Columns.Add(column1); dataGridView1.Columns.Add(column2); dataGridView1.Columns.Add(column3); dataGridView1.AllowUserToAddRows = false; //запрешаем пользователю самому добавлять строки for (int i = 0; i < 5; ++i) < //Добавляем строку, указывая значения колонок поочереди слева направо dataGridView1.Rows.Add("Пример 1, Товар " + i, i * 1000, i); >for (int i = 0; i < 5; ++i) < //Добавляем строку, указывая значения каждой ячейки по имени (можно использовать индекс 0, 1, 2 вместо имен) dataGridView1.Rows.Add(); dataGridView1["name", dataGridView1.Rows.Count - 1].Value = "Пример 2, Товар " + i; dataGridView1["price", dataGridView1.Rows.Count - 1].Value = i * 1000; dataGridView1["count", dataGridView1.Rows.Count - 1].Value = i; >//А теперь простой пройдемся циклом по всем ячейкам for (int i = 0; i < dataGridView1.Rows.Count; ++i) < for (int j = 0; j < dataGridView1.Columns.Count; ++j) < //Значения ячеек хряняться в типе object //это позволяет хранить любые данные в таблице object o = dataGridView1[j, i].Value; >> > >
В целом это и есть базовая работа с элементом DataGridView. По сути мы имеем работу с матрицей (двумерным массивом). Давайте теперь рассмотрим базовый вариант автоматизации обновления данных в таблице — механизм привязки (Binding).
Для этого создадим класс, который будет играть роль одной строки. Т.е. по сути нам нужно создать класс, описывающий колонки нашей таблицы.
class SampleRow < public string Name < get; set; >//обязательно нужно использовать get конструкцию public float Price < get; set; >public int Count < get; set; >public string Hidden = ""; //Данное свойство не будет отображаться как колонка public SampleRow(string name, float price, int count) < this.Name = name; this.Price = price; this.Count = count; >>
Теперь мы можем написать следующий код в событии формы OnLoad:
private void Form1_Load(object sender, EventArgs e) < BindingListdata = new BindingList(); //Специальный список List с вызовом события обновления внутреннего состояния, необходимого для автообновления datagridview data.Add(new SampleRow("Товар 1", 100, 1)); data.Add(new SampleRow("Товар 2", 200, 2)); data.Add(new SampleRow("Товар 3", 300, 3)); dataGridView1.DataSource = data; data.Add(new SampleRow("Товар 4", 400, 4)); >
Как сменить источник данных dataGridView через код WinForms C#?
Нужно чтобы пользователь мог через Windows Form поменять таблицу в Microsoft Access из которой dataGridView получает данные. Хочу реализовать это через ComboBox, но не могу найти как поменять источник данных dataGridView
- Вопрос задан более года назад
- 263 просмотра
1 комментарий
Простой 1 комментарий

у dataGridView есть DataSource
если помогло — я положу в ответы вы отметите решением
Решения вопроса 0
Ответы на вопрос 2

Владимир Коротенко @firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
1. ищите ваш файл.
2. смотрите где это используется
3. делаете кнопку для смены файла
Ответ написан более года назад
Dreker052 @Dreker052 Автор вопроса
а как это в коде реализовать?

Владимир Коротенко @firedragon

Владимир Коротенко @firedragon
visual studio генерирует весь код, который ты накликал в дизайнере форм, практически ничего за кадром не остается, смотри в файлах проекта они в инспекторе есть
смотри как там прописывается источник данных, и делай так же
p.s. вообще то вопрос что такое сменить источник данных
Источник данных это DataSource, если все создается в дизайнере форм то данные туда заливаются из базы по запросу (а у тебя таблица эксель через adodb подключается как таблица), ну так меняй подключение или запрос, если тот же файл, на событие onchange комбобокса
загрузив новые данные datagrid все подхватит сам
Ответ написан более года назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- C#
- +1 ещё
Какую ошибку в скрипте для респавна в Unity я допустил?
- 1 подписчик
- 6 часов назад
- 11 просмотров