Открийте как да издавате най-често срещаните SQL команди с помощта на VB.NET.
VB.NET предлага рационализиран подход към операциите с бази данни със стабилна рамка. Използвайки силата му, можете да получите необходимата информация бързо и с минимални усилия.
Разгледайте някои практически примери, които показват как да използвате VB.NET за извършване на SQL заявки и вижте как можете да гарантирате, че извличането на данни е едновременно ефективно и ефикасно.
Настройване на вашия локален SQL сървър
Започнете, като настроите SQL сървър, за да прегледате всичко стъпка по стъпка. В примерите по-долу ще видите Windows среда, но ако използвате a различна операционна система като Linux и имате различен SQL сървър, не се притеснявайте; общата логика ще остане същата.
Поради своята простота и нулев конфигурационен подход, SQLite е отличен избор за начинаещи.
За да настроите нещата, след това създайте нова папка отворете команден ред и отидете до него. Изпълнете следната команда, за да създадете нов .NET проект, в който можете да използвате езика VB.NET:
dotnet new console -lang VB -o MyVBApp
Вече имате проект, наречен MyVBApp. Продължете настройката, като интегрирате пакета SQLite във вашия VB.NET проект с помощта на NuGet, популярен мениджър на пакети за .NET. Изпълнете тази команда:
dotnet add package System.Data.SQLite
След като добавите SQLite, можете да настроите локална база данни без усилие.
Можете да намерите целия код за тези примери в проекта GitHub хранилище.
Изтеглете InitializeDatabase.vb файл от хранилището на проекта. Този конкретен файл ще ви помогне да конфигурирате вашата база данни. Както можете да видите в този файл има някои потребители и държави на потребителите. Можете да използвате това като примерна база данни.
Командата, която сте използвали за създаване на проекта VB.NET, създаде файл с име Program.vb. Отворете този файл и го актуализирайте по следния начин:
Module Program
Sub Main(args AsString())
DatabaseInitializer.InitializeDb()
EndSub
EndModule
Стартирайте тази програма и трябва да видите, че създава файл с име mydatabase.db. Това е простата база данни, която ще използвате в следващите примери.
Установяване на връзка с база данни с SQL във VB.NET
Установяването на връзка с помощта на SQLite във VB.NET е лесно. Продължете да редактирате Program.vb файл и премахнете съществуващото съдържание на основната подпрограма. Този файл служи като ядро на проекта.
Можете да дефинирате връзка към файла на базата данни, mydatabase.db, с този ред код:
Dim connectionString AsString = "Data Source=mydatabase.db; Version=3;"
Източник на данни указва името на файла на базата данни. Ако файлът не съществува, SQLite ще създаде нова база данни, когато установи връзка.
Следващата стъпка е да използвате SQLiteConnection клас за създаване на екземпляр за връзка. Винаги трябва да използвате a Използвайки блокирайте, когато работите с връзки към бази данни, за да избегнете потенциални течове или блокирания:
Using conn AsNew SQLiteConnection(connectionString)
conn.Open()
' Database operations go here
EndUsing
Блокът Използване гарантира, че връзката се затваря автоматично, когато приключи.
Вашият окончателен файл Program.vb трябва да изглежда по следния начин:
Imports System
Imports System.Data.SQLiteModule Program
Sub Main(args AsString())
Dim connectionString AsString = "Data Source=mydatabase.db; Version=3;"Try
Using conn AsNew SQLiteConnection(connectionString)
conn.Open()
Console.WriteLine("Successfully connected to the database!")
'You can perform database operations here.
EndUsing
Catch ex As SQLiteException
Console.WriteLine("Error: " & ex.Message)
EndTry
EndSub
EndModule
Този код ще се свърже с базата данни mydatabase.db и ще отпечата съобщение за потвърждение, когато успее. Ако възникне грешка, той ще отпечата подробности на конзолата.
Как да извлечете данни и да ги заредите в масив
The ИЗБЕРЕТЕSQL команда е основният начин за извличане на данни от SQL база данни. Ако имате таблица с име Потребители във вашата база данни и искате да получите Име поле от всеки запис в тази таблица, използвайте SELECT по този начин:
SELECT Name FROM Users
Можете да изтеглите данни от базата данни и да ги заредите в масив, като добавите тази заявка към файла Program.vb:
Dim query AsString = "SELECT Name FROM Users"
Dim names AsNew List(OfString)()Using conn AsNew SQLiteConnection(connectionString)
conn.Open()Using cmd AsNew SQLiteCommand(query, conn)
Using reader As SQLiteDataReader = cmd.ExecuteReader()
While reader.Read()
names.Add(reader("Name").ToString())
EndWhile
EndUsing
EndUsing
EndUsing' Now the 'names' list is full of users' names.
' You can convert this list to an array if you want:
Dim namesArray() AsString = names.ToArray()
' Print array content for testing purposes
ForEach name In namesArray
Console.WriteLine(name)
Next
Ще видите списък с имена на конзолата, съответстващ на съдържанието на таблицата на вашата база данни:
Този код зарежда данните в a списък структура, която има динамичен размер, преди да я преобразувате в масив при завършване. Този подход е много полезен за ситуации, в които не знаете предварително броя на записите, които ще извлечете.
Как да използвате INSERT за добавяне на данни към база данни
Можете да използвате INSERT INTO команда за добавяне на нови данни към база данни. Например, помислете за Потребители таблица, която има две колони с имена Име и Държава.
Основната SQL заявка, която можете да използвате, за да добавите нов потребител, ще бъде:
INSERT INTO Users (Name, Country) VALUES ('Fatih', 'TR')
За да добавите нов потребител към базата данни с помощта на тази заявка, актуализирайте файла Program.vb, както следва:
Dim query AsString = $"INSERT INTO Users (Name, Country) VALUES ('{name}', '{country}')"
Using conn AsNew SQLiteConnection(connectionString)
conn.Open()Using cmd AsNew SQLiteCommand(query, conn)
cmd.ExecuteNonQuery()
EndUsing
EndUsing
Console.WriteLine($"{name} has been successfully added to the database!")
Този прост пример използва интерполация на низове за изграждане на заявката, но трябва да избягвате това в производствения код, тъй като е уязвим към SQL инжектиране. Алтернативата са параметризираните заявки, които правят операциите с бази данни по-безопасни и по-ефективни.
Параметризираните заявки използват контейнери вместо директно свързване на низове, за да добавят стойности към SQL заявки. Този подход ще ви помогне да избегнете много заплахи за сигурността:
Dim query AsString = "INSERT INTO Users (Name, Country) VALUES (@Name, @Country)"
'...
cmd.Parameters.AddWithValue("@Name", userName)
cmd.Parameters.AddWithValue("@Country", userCountry)
Всякакви други съвети за работа с база данни от VB.Net
Операциите с бази данни във VB.NET първоначално може да изглеждат плашещи, но с няколко насоки можете лесно да овладеете основите.
- Използвайте параметризирани заявки, за да се предпазите от уязвимости в сигурността.
- Винаги затваряйте връзката си с базата данни, когато приключите с извличането или актуализирането на данни.
- Поддържайте вашата база данни, за да оптимизирате нейната структура, тъй като вашият модел на данни се променя с времето.
- Не забравяйте да направите резервни копия в случай на спешност.
Както при всяка технология, базите данни се развиват. Софтуерът се актуализира, появяват се нови инструменти и ние откриваме по-добри начини за правене на нещата. Добра идея е да сте информирани и актуализирани. Някои инструменти действат като посредници, напр Entity Framework, което улеснява писането на код, свързан с база данни.
Как да продължите своето VB.NET пътуване
VB.NET, със своята дълбоко вкоренена връзка с екосистемата на Microsoft, е едновременно здрав и удобен за потребителя. За да разберете наистина силата му, започнете с официалната документация, предоставена от Microsoft. Оттам проучете онлайн курсове, форуми и общности, където опитни разработчици споделят своите знания и прозрения.
Не забравяйте, че всеки експерт някога е бил начинаещ. С постоянни усилия, любопитство и правилните ресурси, скоро ще откриете, че навигирате във VB.NET с увереност и лекота. Докато напредвате, не се колебайте да експериментирате, да задавате въпроси и – най-важното – да се насладите на процеса на откриване.