У меня было несколько проблем с Visual Studio 2019. Я хочу создать локальную базу данных, а затем расширить ее.
Сначала я хотел посмотреть, смогу ли я установить простое соединение, и я не удалось (я импортировал пакет NuGet System.Data.SqlClient
для справки).
Итак, что я сделал до сих пор:
- Я создал класс
SQLControl
(см. код, показанный ниже) - Я также создал простую базу данных с расширением
.mdf
, с новой таблицей с именем Food
:
CREATE TABLE [dbo].[Food]
(
[Id] INT NOT NULL,
[Food_Name] NVARCHAR (30) NOT NULL,
[Food_Type] NVARCHAR (30) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
Я заполнил эту таблицу данными 5 записей ID, редактируя интерфейс «Показать данные таблицы».
После этого я хотел посмотреть, работает ли соединение, поэтому я сделал форму:
public Class Form1
Private SQL As New SQLControl
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
GetFoods()
End Sub
Private Sub GetFoods()
SQL.ExecQuery("SELECT Food_Name FROM Food")
MsgBox(SQL.RecordCount)
End Sub
End Class
Это должно просто посчитаться 5 записей и возвращаем значение 5 во всплывающем окне. Но это только возвращает меня с 0. Не могли бы вы, ребята, помочь мне?
Класс SQLControl.vb:
Imports System.Data
Imports System.Data.SqlClient
Public Class SQLControl
Private SQLCon As New SqlConnection("Data Source = Database1.mdf;")
Private SQLCmd As SqlCommand
Public SQLDA As SqlDataAdapter
Public SQLDS As DataSet
Public Params As New List(Of SqlParameter)
Public RecordCount As Integer
Public Exception As String
Public Sub ExecQuery(Query As String)
Try
SQLCon.Open()
SQLCmd = New SqlCommand(Query, SQLCon)
Params.ForEach(Sub(x) SQLCmd.Parameters.Add(x))
Params.Clear()
SQLDS = New DataSet
SQLDA = New SqlDataAdapter(SQLCmd)
RecordCount = SQLDA.Fill(SQLDS)
SQLCon.Close()
Catch ex As Exception
Exception = ex.Message
End Try
If SQLCon.State = ConnectionState.Open Then SQLCon.Close()
End Sub
Public Sub AddParam(Name As String, Value As Object)
Dim NewParam As New SqlParameter(Name, Value)
Params.Add(NewParam)
End Sub
End Class