41 / 13 / 4
Регистрация: 22.07.2013
Сообщений: 145
|
||||||
1 | ||||||
Добавить столбец в таблицу БД (Windows Forms)19.11.2016, 17:26. Показов 5382. Ответов 20
Метки нет (Все метки)
Добрый вечер. К проекту windows forms подключена БД (access) используется BindingSource .Таблицы отображаются с помощью DataGridView. Собственно вопросов 2:
1. Как программно добавить столбец к одной из таблиц БД? Есть техт бокс и кнопка где нужно указать имя нового столбца :
2. Как добавить таблицу к подключенной БД? Файл access лежит в той же папке что и собранное приложение. Спасибо!
0
|
19.11.2016, 17:26 | |
Ответы с готовыми решениями:
20
Windows Forms DataGridView спрятать столбец Добавить столбец в таблицу Добавить столбец в таблицу Добавить столбец в таблицу |
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|||||||||||
19.11.2016, 19:05 | 2 | ||||||||||
Пример:
1
|
41 / 13 / 4
Регистрация: 22.07.2013
Сообщений: 145
|
|
19.11.2016, 23:18 [ТС] | 3 |
0
|
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
19.11.2016, 23:26 | 4 |
В метод, обрабатывающий какое-либо событие какого-либо контрола.
Класс, осуществляющий подключение к базе данных. https://msdn.microsoft.com/ru-... .110).aspx
1
|
41 / 13 / 4
Регистрация: 22.07.2013
Сообщений: 145
|
|
19.11.2016, 23:31 [ТС] | 5 |
А что такое connString в OleDbConnection conn = new OleDbConnection(connString) ? Чему она должна быть равна? БД подключал через мастер настройки источника данныхVS.
0
|
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
19.11.2016, 23:48 | 6 |
connString - строка подключения.
Работа с подключенным уровнем ADO .NET в C#
1
|
41 / 13 / 4
Регистрация: 22.07.2013
Сообщений: 145
|
||||||
20.11.2016, 00:04 [ТС] | 7 | |||||
Так откуда мне её взять если подключался с помощью мастера? Я пробую так - открываю источник данных, выбираю DataBaseSet - правой кнопкой по "настроить источник с помощью мастера" - назад - потом в мастере настройки источника данных выбираю "строка подключения, которая храниться в приложении (раскройте что бы увидеть детали)", раскрываю - строка такого вида "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\ DataBase.mdb" Но при
0
|
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
20.11.2016, 00:12 | 8 |
Она самая.
Вообще подключения с помощью мастеров, заполнения с помощью автогенерированного кода хороши до поры до времени, т.е. пока не появится какой-либо более сложной задачи, типа добавления столбца.
1
|
41 / 13 / 4
Регистрация: 22.07.2013
Сообщений: 145
|
||||||
20.11.2016, 00:21 [ТС] | 9 | |||||
т.е. эта строка практически бесполезна и мне нужно подключать БД вводя строку подключения руками? Например
0
|
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
||||||
20.11.2016, 00:38 | 10 | |||||
А так:
1
|
41 / 13 / 4
Регистрация: 22.07.2013
Сообщений: 145
|
||||||
20.11.2016, 00:50 [ТС] | 11 | |||||
если оставить так
может вместо DataDirectory что то поставить? только что, если и БД и ехе в одной папке....
0
|
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
||||||
20.11.2016, 12:00 | 12 | |||||
Значит строка подключения правильная. Вероятно неправильный текст sql запроса.
В запросе:
TempTable - имя изменяемой таблицы, т.е. той, в которую добавляется столбец ADD COLUMN - команда на добавление столбца newField - имя добавляемого столбца CHAR(10) - тип данных NULL - в столбце допускаются пустые значения
1
|
41 / 13 / 4
Регистрация: 22.07.2013
Сообщений: 145
|
||||||
26.11.2016, 14:24 [ТС] | 13 | |||||
Столбец добавляется, только datagridview это не отображает. Если открыть бд через access, то новый столбец есть но как сделать что бы и datagridview его показывал?
Добавлено через 1 час 28 минут Прочитал что нужно использовать OleDbDataAdapter. Пробую так:
0
|
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|||||||||||
26.11.2016, 15:44 | 14 | ||||||||||
Sergei12,
примерно такой метод нужно вызывать после добавления столбца:
1
|
41 / 13 / 4
Регистрация: 22.07.2013
Сообщений: 145
|
|
26.11.2016, 16:32 [ТС] | 15 |
Все равно не срабатывает.( Столбик создает а вот грид не обновляет.
Добавлено через 36 минут Может ли влиять то, что разные таблицы находятся на разных tabPage1 tabPage2 и т.д.?
0
|
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
26.11.2016, 17:46 | 16 |
Не знаю, вряд ли. Если Name у них разные (а иного я не не представляю), то влиять не должно.
Покажите нынешний код добавления и обновления.
1
|
41 / 13 / 4
Регистрация: 22.07.2013
Сообщений: 145
|
||||||
26.11.2016, 17:54 [ТС] | 17 | |||||
0
|
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
26.11.2016, 19:49 | 18 |
Сообщение было отмечено Sergei12 как решение
Решение
Sergei12,
Не знаю, может код, созданный с помощью мастеров, как-то не дает dgv обновить. Поэкспериментируйте: добавьте новый DataGridView и две кнопки, на щелчок по одной повесьте вызов CV, только сделайте, чтобы в CV именно этот DataGridView заполнялся. На щелчок по второй кнопке повесьте код, добавляющий столбец с последующим вызовом CV. Ну и после запуска щелкните сначала по первой, затем по второй кнопке.
1
|
41 / 13 / 4
Регистрация: 22.07.2013
Сообщений: 145
|
||||||
26.11.2016, 21:20 [ТС] | 19 | |||||
А как будет выглядеть строка подключения к БД, если БД находится в папке с exe файлом? Что то не могу найти простого примера. Ведь строка, полученная от мастера уже не будет работать?
Добавлено через 14 минут Делаю так: Захожу в обозревателе решений в settings Выбираю ТИП - строка подключения Выбираю путь (Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\bin\Debug\DataBase.mdb) Затем, все как в примерах выше использую эту строку
/// задает ошибочный путь. Проверьте, что путь задан правильно и имеется подключение к серверу, на котором находятся файлы.
0
|
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|||||||||||
26.11.2016, 21:31 | 20 | ||||||||||
Sergei12,
Эта строка подключения и работает с базой, находящейся в одной папке с exe:
1
|
26.11.2016, 21:31 | |
26.11.2016, 21:31 | |
Помогаю со студенческими работами здесь
20
Как добавить столбец в таблицу? Нужно добавить столбец в таблицу Как добавить столбец в таблицу? Добавить столбец в существующую таблицу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |