Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
46 / 46 / 1
Регистрация: 14.10.2008
Сообщений: 179
MS Access

Привязка объекта DataTable к tableAdapter для отображение в DataGridView

02.05.2015, 11:31. Показов 1365. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Имеется грид на форме с именем sectionGridView. У грида имеется адаптер с именем sectionTableAdapter.

Для того, чтобы отфильтровать ненужные записи и вывести только те, что нужны в грид, я написал такой код с запросом(СУБД MS Access 2007):
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
//Достает список коллективов для студента
        public DataTable Sections4Student(Int32 studentId)
        {
            DataTable sections4Student = new DataTable("Section");
 
            OleDbConnection oleDbConnection = new OleDbConnection(connectionString);
            OleDbCommand oleDbCommand = oleDbConnection.CreateCommand();
            OleDbDataAdapter oleDbAdapter;
            oleDbCommand.Connection = oleDbConnection;
            oleDbCommand.CommandType = CommandType.Text;
 
            //Выбираем коллективы для студента
            oleDbCommand.CommandText = "select [Section].ID as [ID], [SNAME], [SCOMMENT] "
                + "from [Section], Student_Section "
                + "where Student_Section.Section_ID = [Section].ID "
                + "and Student_ID = @studentId";
            oleDbCommand.Parameters.AddWithValue("@studentId", studentId);
 
            oleDbAdapter = new OleDbDataAdapter(oleDbCommand);
 
            //Вперед
            if (oleDbConnection.State != ConnectionState.Open)
                oleDbConnection.Open();
 
            //Достаем данные
            oleDbAdapter.Fill(sections4Student);
 
            oleDbConnection.Close();
 
            return sections4Student;
        }


Далее, для того чтобы это все отобразилось я полученный DataTable пытаюсь загрузить в адаптер:
C#
1
2
3
4
5
//Грузим данные в грид
                DataTable ddd = this.Sections(studentId);
                ddd.TableName = "Section";
                SectionsDataSet.SectionDataTable fff = new SectionsDataSet.SectionDataTable(ddd);
                this.sectionTableAdapter.Fill(fff);

В результате возникает ошибка "Не задана ссылка на объект"vпри выполнении fill. Все возвращается, все инииализировано вроде, все присваивается, а выводится вот такое чудо. Есть мысли, товарищи?


ЗЫ причем, если выполнить такой код (родной, который пишет сама среда)
C#
1
2
3
4
//Грузим данные в грид
                DataTable ddd = this.sectionsDataSet.Section;//this.Sections(studentId);
                SectionsDataSet.SectionDataTable fff = new SectionsDataSet.SectionDataTable(ddd);
                this.sectionTableAdapter.Fill(fff);
все чудесным образом работает! Что-то не хватает в моем объекте DataTable...

Добавлено через 2 часа 6 минут
Или может подскажете, как лучше реализовать отбор нужных записей. Такое также приветствуется
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.05.2015, 11:31
Ответы с готовыми решениями:

Отображение в DataGridView значения со связанной таблицы TableAdapter
В общем проблема в том, что я не могу вывести значение с таблицы в грид. У меня подключена моя база, есть таблицы. Посредством визуальных...

Обновление DataGridView для отображения данных из нового DataTable
Доброго времени суток. У меня проблема с DataGridView. Вообщем есть БД Access. Я из этой бд загружаю данные в DataTable согласно запросу...

DataGridView, DataSet, TableAdapter, BindingSource
Привет всем. Есть вопросик. У меня есть таблица .dbf, которую я вывожу в DataGridView. Гружу таблицу в DataTable с помощью OleDB...

8
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
02.05.2015, 12:15
Цитата Сообщение от Vasiliusis Посмотреть сообщение
может подскажете, как лучше реализовать отбор нужных записей.
Либо так, как делаете вы (через запрос к БД), либо запросом получать всю таблицу, а потом через LINQ to DataSet фильтровать.
0
46 / 46 / 1
Регистрация: 14.10.2008
Сообщений: 179
02.05.2015, 12:47  [ТС]
insite2012, ну как я делаю - не работает, вы не знаете, в чем может быть дело?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
02.05.2015, 12:49
Цитата Сообщение от Vasiliusis Посмотреть сообщение
как я делаю - не работает
Значит делаете не так)))
Покажите структуру таблицы в БД.
0
46 / 46 / 1
Регистрация: 14.10.2008
Сообщений: 179
02.05.2015, 13:02  [ТС]
Выводится Section. ID - интовые. Запрос в самом аксессе выполняется, данные есть.

0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
02.05.2015, 13:15
Vasiliusis, а не много таблиц для такой задачи? Может обойтись двумя? Поподробнее опишите логику взаимодействия. Откуда берутся параметры фильтрации и т.д.
0
46 / 46 / 1
Регистрация: 14.10.2008
Сообщений: 179
02.05.2015, 13:26  [ТС]
insite2012, имеется список студентов Student. Имеется список секций, которые может посещать студент Section. Таблица Student_Section задает соответствие, какой студент на какие секции ходит, а также на какую секцию какие студденты посещают. Вот вкратце.

В грид на форме выводится таблица Section (не Student_Section), при фильтраии по айдишнику студента делается выборка строк, которые есть для него (студента) в Srudent_Section. Это видно в запросе. Как-то так
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
02.05.2015, 14:04
Vasiliusis, если не трудно, дайте образец заполненной БД. Что-то у меня фантазии не хватает ее заполнить))
0
46 / 46 / 1
Регистрация: 14.10.2008
Сообщений: 179
02.05.2015, 14:35  [ТС]
Таблица Student

1 Джигурдеев Никита Ринатович 1 3 1 1 True
2 Пистолетов Семен Михайлович 2 4 1 2 False
3 Горбунков Андрей Сергеевич 2 2 1 2 True

Таблица Section
1 КВН Клуб веселых и находчивых студентов
2 Квинс Клуб танцоров
3 Аллегро Еще один клуб танцоров
4 Стимул Что-то связанное с наркотиками
5 Студсовет Студенческий совет ВУЗа
6 Профсоюз Профессиональный союз работников ВУЗа


Таблица Student_Section
1 3 1
2 5 1

Добавлено через 21 минуту
В общем, сделал через dataSetBindingSource.Filter = "ID in (...)". Криво, не кашерно, но работает. пока оставлю этот вариант, а то уже много времени потратил на эксперименты
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.05.2015, 14:35
Помогаю со студенческими работами здесь

Не обновляется DatagridView после TableAdapter.Fill
Доброго времени суток,знаю,что много таких тем, но по-сути ничего толкового не нашла. есть datagridview ,заполнен вот так: // TODO:...

Привязка textBox's к объекту DataTable
Доброго времени! Такой вопрос: есть на форме несколько текстбоксов, нужно их заполнить данными из объекта DataTable. Данные были...

DataGridView + DataTable отображение данных
В DataGridView имеется столбец в котором динамически размещаются контролы различных встроенных типов. В том числе в этом столбце может...

Привязка datatable к datagrid
Нашел пример на www.codescratcher.com, но там пример без {Binding}. Как это можно сделать с {Binding}?

MVVM и DataTable. Привязка к данным
Здравствуйте. Подскажите, пожалуйста. Пробую создать программу с WPF и MVVM. Производя привязку объекта класса DataTable к DataGrid...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
SDL3_mixer - это библиотека я для воспроизведения аудио. Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru