How to connect to sql server database with visual studio (windows authentication)
It’s been a while since I programmed with Visual Studio (Visual Basic) and SQL Server, and I wanted to get back into it.
I’ve created a database named LOTTERIE
and on my form I inserted a DatagridView
which I linked my .mdf
database file to see all my data on it.
So far it worked.
But I want to be able to add or remove data with a button. In order to do so, I have to make a connection to my db and make query.
I have installed SSMS and created a local DB which the .mdf
was created on C:UsersAmenard
, but then copied in C:UsersAmenardsourcereposProjet1
in Visual Studio when I created my project.
I can connect to my database in SSMS with Windows authentication with no problems.
But I cannot create a connection from Visual Studio in my code to make it work.
Can someone guide me how to do it? And also, I’m connected on a domain that I will call for example SAQ
.
Here’s my code:
Imports System.Data.SqlClient
Public Class Form1
Dim myconnection As SqlConnection
Dim mycommand As SqlCommand
Dim dr As SqlDataReader
Dim dr1 As SqlDataReader
Dim ra As Integer
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: cette ligne de code charge les données dans la table 'LotterieDataSet.Tirage'. Vous pouvez la déplacer ou la supprimer selon les besoins.
Me.TirageTableAdapter.Fill(Me.LotterieDataSet.Tirage)
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
myconnection = New SqlConnection("server=(LocalDb)MSSQLLocalDB;uid=SAQAmenard;pwd=screen$;database=C:USERSAMENARDSOURCEREPOSPROJET1BINDEBUGLOTTERIE.MDF")
'you need to provide password for SQL Server
myconnection.Open()
mycommand = New SqlCommand("insert into Tirage([date_tirage],[case_1],[case_2],[case_3],[case_4],[case_5,[case_6],[case_7]) values ('2022-01-01','1','2','3','4','5','6','7')", myconnection)
mycommand.ExecuteNonQuery()
myconnection.Close()
End Sub
Выполнение запросов
Для исполнения запросов так же необходимо создать объект типа MySqlCommand.
Dim cmd As New MySqlCommand
Текст запроса при таком положении дел задается путем изменения свойства CommandText объекта cmd:
Настройка подключения к mysql
Поскольку в VB нет стандартного механизма подключения к MySQL было принято решение использовать не
, а
Для начала необходимо подключить библиотеку коннектора.
По умолчанию в Solution Explorer’е существует пункт My Project. Его собственно и выбираем, далее переходим в References.
Должно выглядеть примерно
, но соответственно без MySql.Data. У меня уже подключена эта библиотека.
Нажимаем
(add), выбираем вкладку Browser и ищем библиотеку. Находится она по следующему пути: путь_куда_вы_ставили_mysql_connector/Assemblies/версия .net/MySql.Data.dll
После добавления библиотеки в проект обязательно измените параметр копировать локально (в Окне Свойств, Properties, при выделенном пункте списка) на true, иначе при запуске ПО на компьютере без MySQL Connector/NET приложение будет вываливаться с ошибкой dll.
После всего это можно спокойно приступать к написанию программы.
Подключение
Для начала импортируем типы строчкой Imports MySql.Data.MySqlClient. Ее необходимо разместить в области определения до создания каких либо классов/объектов. Это необходимо для того, чтобы избавить нас от необходимости каждый раз писать полный путь до типов при определении переменных.
Imports MySql.Data.MySqlClient
Для создания подключения необходимо создать объект типа MySqlConnection и задать ей ConnectionString (строка подключения — описывает необходимые параметры для подключения к серверу).
Предыстория. выбор бд
Возникла необходимость подружить программу, написанную на VB, с сервером баз данных. Конечно, многочисленные сотоварищи — разработчики ПО могут поставить под сомнение мой выбор базы данных (и будут правы), назвав MSSQL самым простым и очевидным выбором. Но необходимо принять во внимание несколько фактов: