Аватар для F&D
74 / 31 / 2
Регистрация: 25.05.2010
Сообщений: 218
.NET 4.x

Выбирать название таблицы из базы данных с помощью выпадающего списка

17.11.2011, 11:13. Показов 2758. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!

Возникла вот такого рода задача:

Реализуйте WinForms приложение, позволяющее пользователю выбирать название таблицы из базы данных, с помощью выпадающего списка. В результате выбора таблицы приложение должно отображать содержимое данной таблицы в форму.

Принцип понятен, даже более менее разобрался с dataGridView и comboBox:

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
public Form1()
        {
            InitializeComponent();
 
            // 5 столбцов
            dataGridView1.Columns.Add("column1", "Число 1");
            dataGridView1.Columns.Add("column2", "Число 2");
            dataGridView1.Columns.Add("column3", "Число 3");
            dataGridView1.Columns.Add("column4", "Число 4");
            dataGridView1.Columns.Add("column5", "Число 5");
            
            // 1 строка
            dataGridView1.Rows.Add(1);
 
            // 5 итемов
            comboBox1.Items.Add("0");
            comboBox1.Items.Add("1");
            comboBox1.Items.Add("2");
            comboBox1.Items.Add("3");
            comboBox1.Items.Add("4");
        }
 
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int i;
 
           // очистка перед новым выбором
            dataGridView1.Rows.Clear();
 
            for (i = 0; i < dataGridView1.Columns.Count; i++)
            {
                if (comboBox1.SelectedIndex == i)
                {
                    dataGridView1[i, 0].Value = comboBox1.Items[i];
                }
            }
        }
Есть база данных, в ней 10 таблиц. Добавил на форму comboBox и dataGridView. Я так понял обрабатывать все нужно в обработчике событий именно comboBox.

но вот как внести в comboBox - таблицы, чтобы можно было их выбирать - не знаю.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.11.2011, 11:13
Ответы с готовыми решениями:

Название страны и серию книги выбирать из выпадающего списка формы
Выводить список покупателей, что проживают в заданной стране и покупают книги определенной серии. Название страны и серии задаются из...

Запись в базу данных из выпадающего списка из базы
Прошу помощи, в интернете не могу найти ничего путного сама, можно пример любой, где выпадающий список из базы данных, человек выбрал поля...

Любое название столбца таблицы базы данных
#define TABLE_DATE &quot;Телефон&quot; #define TABLE_TIME &quot;ФИО&quot; #define TABLE_MESSAGE &quot;Дата&quot; // поля для...

7
19 / 18 / 1
Регистрация: 15.11.2011
Сообщений: 54
17.11.2011, 11:51
Вы не совсем правильно заполняете датагрид.
Ознакомьтесь: http://msdn.microsoft.com/ru-r... 00%29.aspx
0
 Аватар для F&D
74 / 31 / 2
Регистрация: 25.05.2010
Сообщений: 218
18.11.2011, 01:11  [ТС]
Что-то получилось, но только с *.xml C базами так и не разобрался.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public Form1()
        {
            InitializeComponent();
 
            DataSet Dset = new DataSet();
            Dset.ReadXml("..\\..\\XMLData.xml");
 
            for (int item = 0; item < Dset.Tables.Count; item++)
            {
                comboBox1.Items.Add(Dset.Tables[item].
               TableName.ToString());
            }
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
 {
          dataGridView1.DataSource = null;
          dataGridView1.DataSource = Dset.Tables[comboBox1.Text];
 }
Добавлено через 1 час 39 минут
соединение с базой(в моем случае MS Access):
SQL
1
2
3
4
5
6
7
8
9
10
11
12
OleDbConnection conn = NEW OleDbConnection();
try{
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=../../dm.mdb";
conn.Open();
 
...
 
finally
{
conn.Close();
}
}
Также забыл добавить, что в dataGridView добавил базу через data Source

Добавлено через 13 минут
Одним из вариантов думал OleDbDataAdapter - но не получилось.
0
19 / 18 / 1
Регистрация: 15.11.2011
Сообщений: 54
18.11.2011, 10:23
какой результат? вы разобрались?
0
 Аватар для F&D
74 / 31 / 2
Регистрация: 25.05.2010
Сообщений: 218
18.11.2011, 12:05  [ТС]
Цитата Сообщение от intacto Посмотреть сообщение
какой результат? вы разобрались?
Результата, пока к сожалению нет. Вчера разбирался весь вечер, ночь.. сейчас пытаюсь что-то понять, но пока не получается. С самим подключение базы - да, вопросов нет. А вот дальше, с работой с самой базой..
0
19 / 18 / 1
Регистрация: 15.11.2011
Сообщений: 54
18.11.2011, 13:04
Странно!
Получение списка таблиц в листбокс
VB.NET
1
2
3
4
5
6
7
8
OleDbConnection connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = question_answer.mdb;");
            connection.Open();
            DataTable dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
            foreach (DataRow item in dt.Rows)
            {
                listBox1.Items.Add((string)item["TABLE_NAME"]);
            }
            connection.Close();
Взято отсюда: https://www.cyberforum.ru/ado-... post842904


Загрузка таблицы в DataGridView

думаю скрестите.
1
 Аватар для F&D
74 / 31 / 2
Регистрация: 25.05.2010
Сообщений: 218
18.11.2011, 13:43  [ТС]
Пробовал так, для того чтобы понять, вроде как разобрался, но не до конца. Сейчас воспользуюсь еще вашими ссылками.
Еще раз спасибо.
C#
1
2
3
4
5
6
7
8
9
OleDbCommand command1 = new OleDbCommand("SELECT * FROM Country", conn);
 
                    OleDbDataReader dataRead = command1.ExecuteReader();
                    dataRead.Read();
                    while (dataRead.Read())
                    {
                        comboBox1.Items.Add(dataRead.GetString(1));
                        comboBox1.SelectedItem = dataGridView1;
                    }
0
 Аватар для F&D
74 / 31 / 2
Регистрация: 25.05.2010
Сообщений: 218
10.12.2011, 15:07  [ТС]
Опять вернулся к данной задаче. Она, показалась мне чуток не доработанной.

Сейчас код выглядит так:
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
namespace week71_ado
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            OleDbConnection connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source " +
                " J:/Курсы/домашка/неделя71/week71_ado/week71_ado/bin/Debug/DB1HW1.mdb;");
            connection.Open();
            DataTable dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
            foreach (DataRow item in dt.Rows)
            {
                
                comboBox1.Items.Add((string)item["TABLE_NAME"]);
            }
   }   
           
        
        
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
           
          dataGridView1.DataSource = null;
          dataGridView1.DataSource = _DB1_HW1_DataSet.Tables[comboBox1.Text];}
         }
}
В comboBox'e появляется список таблиц. Из списка можно выбрать любую таблицу. НО, она не подгружается в dataGridView.
Не могу понять почему..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2011, 15:07
Помогаю со студенческими работами здесь

Создать программу, которая позволяет из списка ListBox выбирать название цвета
Создать программу, которая позволяет из списка ListBox выбирать название цвета. В результате выбора на экран должно появиться название...

В combobox выбирать данные из списка таблицы (Access)
Имеется база Access, таблица-Tovar-Feild: Key, Name, Price. В проекте: ADOTable1-DataSours1: DBLookupCombobox или DBCombobox. Мне...

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

Фильтрация таблицы с использованием выпадающего списка
Здравствуйте! Есть страничка с одной большой таблицей, содержимое которой должно фильтроваться путем ввода запроса в текстовое поле или...

Обновление выпадающего списка в форме в зависимости от выпадающего списка выше
Есть 3 таблицы (1,2,3) Первая и вторая связаны между собой через таблицу 3. Есть 3 выпадающих списка в Form1. Нужно что бы во втором...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
Микросервис на Python с FastAPI и Docker
ArchitectMsa 23.04.2025
В эпоху облачных вычислений и растущей сложности программных продуктов классическая монолитная архитектура всё чаще уступает место новым подходам. Микросервисная архитектура становится фаворитом. . .
Создаем веб-приложение на Vue.js и Laravel
Reangularity 23.04.2025
Выбор правильного технологического стека определяет успех веб-проекта. Laravel и Vue. js формируют отличную комбинацию для создания современных приложений. Laravel — это PHP-фреймворк с элегантным. . .
Максимальная производительность C#: Span<T> и Memory<T>
stackOverflow 22.04.2025
Мир высоконагруженных приложений безжалостен к неэффективному коду. Каждая миллисекунда на счету, каждый выделенный байт памяти может стать причиной падения производительности. Разработчики на C#. . .
JWT аутентификация в Java
Javaican 21.04.2025
JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025
Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru