Цукер
Сам себе призедент
- Регистрация
- 5 Мар 2008
- Сообщения
- 410
- Реакции
- 379
- Автор темы
- #1
Не так давно решил перейти с MSSQL на mysql изза нужных мне приемуществ.
Работа с этой СУБД очень слабо освещен в сети(ну или уменя гугл не правильный), потому решил накидать простой модуль для выполнения запросов в БД. (Потрачено на него было 10 минут потому прошу строго не судить)
Для работы с mysql в VS надо скачать конектор Для просмотра ссылки Войдиили Зарегистрируйся в свойствах проекта добавить dll - и не забудьте поставить чтобы он копировался вместе с проектом иначе не будет работать на машине без этого канектора, так же стоит отметить что VS по не обьяснимым причинам - па разному работает с разными версимя этого канектора, поэтому используйте ту версию конектора с которой компилировали.
Сам модуль:
Состоит из нескольких функций(мне было лениво пистаь коменты в коде, так как писалось для себя, потому опишу тут)
InitDB() - просто проверка коректности подключение и наличие прав на БД, можно использовать например для записи сессий - возвращает True если все удачно или False если все печально
insertData(sqlstring As String) - выполняет запрос в БД с командой инсерт, возвращает ID добавленой записи.
updateData(sqlstring As String) - выполняет запрос с командой Update возвращает True если все удачно или False если все печально
Выборки из базы в данном модуле нет, так как она мне ненужна было но добавить ее по аналогии не сложно.. или используйте DataGridView для вывода данных.
КОД:
модуль вывода ошибок и записи в лог
Использование:
base.updateData("sql запрос")
base.insertData("sql запрос")
Конечно можно использовать и другие методы работы с бд, но официальные както приятнее)
Работа с этой СУБД очень слабо освещен в сети(ну или уменя гугл не правильный), потому решил накидать простой модуль для выполнения запросов в БД. (Потрачено на него было 10 минут потому прошу строго не судить)
Для работы с mysql в VS надо скачать конектор Для просмотра ссылки Войди
Сам модуль:
Состоит из нескольких функций(мне было лениво пистаь коменты в коде, так как писалось для себя, потому опишу тут)
InitDB() - просто проверка коректности подключение и наличие прав на БД, можно использовать например для записи сессий - возвращает True если все удачно или False если все печально
insertData(sqlstring As String) - выполняет запрос в БД с командой инсерт, возвращает ID добавленой записи.
updateData(sqlstring As String) - выполняет запрос с командой Update возвращает True если все удачно или False если все печально
Выборки из базы в данном модуле нет, так как она мне ненужна было но добавить ее по аналогии не сложно.. или используйте DataGridView для вывода данных.
КОД:
Код:
Imports MySql.Data.MySqlClient
Module base
Public conn As New MySqlConnection("Server=127.0.0.1;User id=ПОЛЬЗАВАТЕЛЬ;password=ПАРОЛЬ;database=БАЗА-ДАННЫХ")
Public Function InitDB()
Dim statecondb As Boolean
Dim cmd As New MySqlCommand
Try
conn.Open()
cmd.Connection = conn
cmd.CommandText = "INSERT INTO `test_table` (`id`, `test_info`) VALUES (NULL, '" & Now & "');"
Try
cmd.ExecuteNonQuery()
Catch ex As Exception
End Try
cmd.CommandText = "SELECT * FROM `test_table`"
Dim reader As MySqlDataReader
reader = cmd.ExecuteReader()
While reader.Read()
statecondb = True
End While
Catch ex As Exception
statecondb = False
End Try
conn.Close()
Return statecondb
End Function
Public Function insertData(sqlstring As String)
Dim statecondb As String
Dim cmd As New MySqlCommand
Try
conn.Open()
cmd.Connection = conn
cmd.CommandText = sqlstring
Try
cmd.ExecuteNonQuery()
Catch ex As Exception
msg.errormsg("Не возможно добавить запись в БД (INSERT_DATA)")
End Try
cmd.CommandText = "SELECT LAST_INSERT_ID();"
Dim reader As MySqlDataReader
reader = cmd.ExecuteReader()
While reader.Read()
statecondb = reader.GetValue(0)
conn.Close()
Return statecondb
Exit Function
End While
Catch ex As Exception
msg.errormsg("Не возможно определить успешность подключения к БД")
End Try
conn.Close()
statecondb = 0
Return statecondb
End Function
Public Function updateData(sqlstring As String)
Dim statecondb As Boolean
Dim cmd As New MySqlCommand
Try
conn.Open()
cmd.Connection = conn
cmd.CommandText = sqlstring
Try
cmd.ExecuteNonQuery()
statecondb = True
Catch ex As Exception
msg.errormsg("Не возможно обновить запись в БД (UPDATE_DATA)")
End Try
Catch ex As Exception
msg.errormsg("Не возможно проверить подключение к БД (UPDATE_DATA)")
End Try
conn.Close()
Return statecondb
End Function
End Module
Код:
Imports System.Diagnostics
Module msg
Public Sub errormsg(msg As String)
Dim logStatus As System.Diagnostics.EventLog
logStatus = New System.Diagnostics.EventLog
logStatus.Source = "StatusSource"
logStatus.WriteEntry(Now & "> " & "{Error} >" & msg, EventLogEntryType.Information)
MsgBox(msg, MsgBoxStyle.Critical, "")
End Sub
Public Sub infomsg(msg As String)
Dim logStatus As System.Diagnostics.EventLog
logStatus = New System.Diagnostics.EventLog
logStatus.Source = "StatusSource"
logStatus.WriteEntry(Now & "> " & "{Info} >" & msg, EventLogEntryType.Information)
MsgBox(msg, MsgBoxStyle.Information, "")
End Sub
End Module
Использование:
base.updateData("sql запрос")
base.insertData("sql запрос")
Конечно можно использовать и другие методы работы с бд, но официальные както приятнее)
Последнее редактирование: