Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 03.12.2018
Сообщений: 8

Как посмотреть все доступные БД в подключении?

14.05.2023, 02:57. Показов 615. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, на отдельной форме имеются: 1 комбобокс, 3 текстбокса. Пользователь вводит сервер, пароль и логин(пользователя БД), если данные введены верно, то комбобокс заполняется данными о доступных базах данных, однако, при выполнении MySql запроса "show databases" возвращается ошибка "Данный ключ отсутствует в словаре", подскажите, как решить проблему.

Код формы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void passwordTBTextChanged(object sender, EventArgs e)
        {
            int err = 0;
            foreach (TextBox tb in this.Controls.OfType<TextBox>())
            {
                if (tb.Text == "")
                {
                    err = 1;
                    break;
                }
            }
            if (err == 0)
            {
                if (MyClass.DBConnection.DBConnectionStart(dataSourceTB.Text,
                    userTB.Text, passwordTB.Text))
                {
                    dbCB.DataSource = MyClass.DBConnection.dbDt;
                    dbCB.ValueMember = "Database";
                    dbCB.DisplayMember = "Database";
                    dbCB.Enabled = true;
                }
            }
        }
Код класса
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
static public bool DBConnectionStart(string dataSource,string user,string password)
        {
            try
            {
                string connectorString = $"datasource={dataSource};" +
                                        $"user={user};" +
                                        $"password={password};";
                MySqlConnection myConnectorTry = new MySqlConnection(connectorString);
                myConnectorTry.Open();
                MySqlCommand myCommandTry = new MySqlCommand();
                myCommandTry.Connection = myConnectorTry;
                MySqlDataAdapter myAdapterTry = new MySqlDataAdapter(myCommandTry);
                myCommandTry.CommandText = "show databases;";
                dbDt.Clear();
                myAdapterTry.Fill(dbDt);
                return true;
            }
            catch
            {
                return false;
            }
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.05.2023, 02:57
Ответы с готовыми решениями:

Как посмотреть все drawable картинки, доступные в проекте
В SDK Android есть множество картинок, подходящих для иконок, фона кнопок и др. А их можно как то посмотреть все сразу в проводнике? А то...

Как обнаружить все доступные wifi сети?
Доброго времени суток. Суть проблемы такова: у меня на ноуте стоит win7 и Bactrack 5, когда на винде сканирую wifi сети видит гдето штук 5...

Как получить все доступные разрешения для экрана?
Добрый день, уважаемые форумчане. Заметил, что некоторые приложения при запуске показывают сначала лаунчер, где можно выбрать...

6
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
14.05.2023, 05:27
Цитата Сообщение от Kroll17 Посмотреть сообщение
myCommandTry.CommandText = "show databases;";
Самое интересное у вас тут. Покажи и все!!! А что показать хз
0
0 / 0 / 0
Регистрация: 03.12.2018
Сообщений: 8
14.05.2023, 12:46  [ТС]
Всмысле? Так это такой запрос, в воркбенче он работает и выдаёт названия всех БД. В программе он выполняется на моменте myAdapterTry.Fill(dbDt)
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
14.05.2023, 12:57
Скорее всего myAdapterTry не знает куда смапить результат.
0
0 / 0 / 0
Регистрация: 03.12.2018
Сообщений: 8
14.05.2023, 13:05  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
static public DataTable organizaciaCBDT = new DataTable();
        static public void OrganizaciaComboBoxView()
        {
            try
            {
                DBConnection.myCommand.CommandText = $"select * from organizacia";
                organizaciaCBDT.Clear();
                DBConnection.myAdapter.Fill(organizaciaCBDT);
            }
            catch
            {
                MessageBox.Show("Ошибка просмотра организаций");
            }
        }
По идее видит, у меня вся программа на таком принципе построена
0
2393 / 1922 / 763
Регистрация: 27.07.2012
Сообщений: 5,565
14.05.2023, 13:22
Так show databases это же не запрос к БД, а команда непосредственно к СУБД. Причём для каждой СУБД она совершенно по-разному выглядит. Соответственно, через запрос она не выполнится. Или я не прав?
0
0 / 0 / 0
Регистрация: 03.12.2018
Сообщений: 8
14.05.2023, 14:09  [ТС]
Я всё починил, запрос правильный, работает, просто у меня стояла версия MySqlData.dll версии 8.0.11, просто переустановил на последнюю(8.0.33), после чего всё заработало
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.05.2023, 14:09
Помогаю со студенческими работами здесь

Как получить все доступные имена компонентов в Lazarus
Как получить все доступные имена компонентов в Lazaruse. Я при создании динамического массива панелей специально указал имя, и для...

Как протестировать шрифты на все доступные в них языки?
А как можно протестировать шрифты на все доступные в них языки? Чтобы не переключать на языковой панели. А то на компе может...

Как программно просмотреть все доступные SQL серверы?
Разрабатывается программа, которая будет использоваться на нескольких компьютерах, возможно, что имена серверов SQL будут разные, можно ли...

Как найти все доступные алиасы для определенного командлета?
Как найти все доступные алиасы для определенного командлета? Например я хочу для командлета get-childitem найти все алиасы, как это...

Как перебрать все элементы определенного класса, доступные в данном классе
Есть у меня некий класс Car Я создал несколько его экземпляров Экземпляр класса Car в качестве одного из параметров принимает Control...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru