Форум для студентов

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум для студентов » Технические науки » Просмотрщик таблиц базы данных MySql на vb.net(исходник).


Просмотрщик таблиц базы данных MySql на vb.net(исходник).

Сообщений 1 страница 2 из 2

1

http://s3.uploads.ru/LOznb.jpg

Итак, перетаскиваем на форму DataGridView, ComboBox, TextBox, Button и Label. Добавляем им обработчики событий Form1_Load, Form1_FormClosing, Button1_Click, ComboBox1_SelectedIndexChanged. Еще к проекту через меню "Проект"->"Добавить ссылку..." нужно подключить "MySql.Data" для работы с базой MySql.

Код:
Public Class Form1
    Public conn As New MySql.Data.MySqlClient.MySqlConnection ' строка подключения
    Public cmd As New MySql.Data.MySqlClient.MySqlCommand ' строка запроса
    ' сервер, БД, логин, пароль
    Public BDServer As String = "localhost"
    Public BDName As String = "mydatabase"
    Friend login As String = "mylogin"
    Friend password As String = "mypassword"

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' формируем строку подключения
        conn.ConnectionString = "server=" & BDServer & "; uid=" & login & "; pwd=" & password & "; database=" & BDName & ";"
        Try
            conn.Open() ' подключаемся
            cmd.Connection = conn ' связываем строку запроса с подключением
        Catch ex As Exception
            ' если не удалось подключится, сообщаем об этом
            MessageBox.Show("Ошибка подключения к базе данных: " & ex.Message)
            End ' выход из программы
        End Try
        Button1.Text = "Выполнить запрос"
        FillCombo() ' заполним ComboBox1 названиями таблиц из базы
    End Sub

    Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
        Try
            conn.Close() ' закрываем подключение при выходе из программы(для порядка)
        Catch : End Try
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim reader As MySql.Data.MySqlClient.MySqlDataReader ' обьявляем DataReader
        cmd.CommandText = TextBox1.Text ' берем строку запроса из текстового поля
        cmd.Prepare() ' подготавливаем строку запроса
        reader = cmd.ExecuteReader() ' выполняем запрос, теперь в DataReader у нас таблица из БД

        DataGridView1.Columns.Clear() ' очистка ДатаГрида
        ' проходим по колонкам таблицы и создаем аналогичные в ДатаГриде
        For k As Integer = 0 To reader.FieldCount() - 1
            DataGridView1.Columns.Add(reader.GetName(k), reader.GetName(k))
        Next

        Dim i As Integer = 0 ' счетчик
        While (reader.Read()) ' проходим по строкам в таблице 
            DataGridView1.Rows.Insert(i, 1) ' создаем строку в ДатаГриде
            ' проходим по ячейкам в строке и заполняем соответсвующие в ДатаГриде
            For k As Integer = 0 To reader.FieldCount() - 1
                Try
                    DataGridView1(k, i).Value = reader.Item(k)
                Catch
                    DataGridView1(k, i).Value = "DATA_ERROR"
                End Try
            Next
            i += 1
        End While
        reader.Close() ' закрываем DataReader 
        Label1.Text = "Строк: " + i.ToString ' количество строк в таблице
    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        ' в зависимости от выбранной таблицы в ComboBox формируем в TextBox'е соответствующий запрос на выборку
        TextBox1.Text = "SELECT * FROM " & ComboBox1.Text
    End Sub

    Private Sub FillCombo() ' функция заполнения ComboBox1 названиями таблиц из базы
        Dim reader As MySql.Data.MySqlClient.MySqlDataReader ' обьявляем DataReader
        cmd.CommandText = "SHOW TABLES FROM " & BDName & ";" ' запрос на выборку названий всех таблиц в базе
        cmd.Prepare() ' подготавливаем строку запроса
        reader = cmd.ExecuteReader() ' выполняем запрос, теперь в DataReader у нас список таблиц в БД

        Dim i As Integer = 0 ' счетчик
        While (reader.Read()) ' проходим по названиям таблиц
            ' заполняем ComboBox, собственно у нас сейчас в DataReader таблица из одной колонки, 
            ' которая называется "Tables_in_mydatabase", где mydatabase - название БД
            ComboBox1.Items.Add(reader.Item("Tables_in_" & BDName))
            i += 1
        End While
        Label1.Text = "Таблиц:" + i.ToString() ' количество таблиц в базе
        reader.Close() ' закрываем DataReader 
        ' если есть таблицы в списке, делаем текущей первую
        If (ComboBox1.Items.Count > 0) Then ComboBox1.SelectedIndex = 0
    End Sub
End Class

Если неохота делать таблицы, можете создать базу mydatabase и выполнить запрос.

Код:
CREATE TABLE `mydatabase`.`mytable1` (
`id` INT NOT NULL AUTO_INCREMENT ,
`text` VARCHAR( 20 ) NOT NULL DEFAULT '',
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;

INSERT INTO `mytable1` VALUES (NULL, 'Первая запись');
INSERT INTO `mytable1` VALUES (NULL, 'Вторая запись');

CREATE TABLE `mydatabase`.`mytable2` (
`id` INT NOT NULL AUTO_INCREMENT ,
`val` INT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;

INSERT INTO `mytable2` VALUES (NULL, 111);
INSERT INTO `mytable2` VALUES (NULL, 222);
INSERT INTO `mytable2` VALUES (NULL, 333);

Можно его выполнить и через программу, только выставьте свойство TextBox1.Multiline = True, выполните запрос и перезапустите программу.

Теги: исходник, просмотрщик базы

+1

2

для освоения программирования нужно еще и знать английский язык https://lector.by/

0


Вы здесь » Форум для студентов » Технические науки » Просмотрщик таблиц базы данных MySql на vb.net(исходник).


Рейтинг форумов | Создать форум бесплатно