Я хочу, чтобы мой код был похож на Moduler. Кто-нибудь может помочь? VB.NET - PullRequest
0 голосов
/ 25 апреля 2020
        Dim Connectionstring As String = "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Anbar;Integrated Security=True"
        Dim sqlcommand As New Data.SqlClient.SqlCommand
        Dim sqlconnection As New Data.SqlClient.SqlConnection
        Dim dataadapter As New Data.SqlClient.SqlDataAdapter(sqlcommand)
        sqlconnection.ConnectionString = Connectionstring
        sqlcommand.Connection = sqlconnection
        sqlcommand.CommandText = "insert into [dbo].[User] ([name],[lastname],[username],[password]) VALUES (@name,@lastname,@username,@password)"
        sqlcommand.Parameters.AddWithValue("@name", txtfristname.Text)
        sqlcommand.Parameters.AddWithValue("@lastname", txtlastname.Text)
        sqlcommand.Parameters.AddWithValue("@username", txtusernameregister.Text)
        sqlcommand.Parameters.AddWithValue("@password", txtpasswordregister.Text)

        sqlconnection.Open()
        sqlcommand.ExecuteNonQuery()
        sqlconnection.Close()

Мой код уже работает, но я хочу быть модулятором ... может ли кто-нибудь помочь? ?? 1002 *

1 Ответ

0 голосов
/ 26 апреля 2020

Единственное, что я могу понять, что вы подразумеваете под модульностью, - это отделить код пользовательского интерфейса от кода доступа к данным. Я создал DataAccess класс для всего кода вашей базы данных. Вам не нужен экземпляр класса для использования InsertUser, потому что это метод Shared. Просто используйте имя класса для доступа к нему.

Using...End Using блоки закроют и уничтожат ваши объекты базы данных. Вы можете передать строку соединения непосредственно в конструктор соединения. Передайте текст команды соединение с конструктором вашей команды.

Я изменил параметры на метод .Add. Вам нужно будет проверить правильность типа данных и размера поля в вашей базе данных.

Public Class DataAccess

    Private Shared ConStr As String = "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Anbar;Integrated Security=True"

    Public Shared Sub InsertUser(fname As String, lname As String, uname As String, pword As String)
        Using cn As New SqlConnection(ConStr),
            cmd As New SqlCommand("insert into [dbo].[User] ([name],[lastname],[username],[password]) VALUES (@name,@lastname,@username,@password);", cn)
            cmd.Parameters.Add("@name", SqlDbType.VarChar, 100).Value = fname
            cmd.Parameters.Add("@lastname", SqlDbType.VarChar, 100).Value = lname
            cmd.Parameters.Add("@username", SqlDbType.VarChar, 100).Value = uname
            cmd.Parameters.Add("@password", SqlDbType.VarChar, 100).Value = pword
            cn.Open()
            cmd.ExecuteNonQuery()
        End Using
    End Sub

End Class

Затем в форме мы имеем дело со всеми элементами пользовательского интерфейса. Обратите внимание, что класс DataAccess не знает, откуда поступают значения параметров (нет ссылок на текстовые поля пользовательского интерфейса и т. П.), А код Form не знает, куда они направляются. Это может быть любая база данных или событие текстового файла.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    DataAccess.InsertUser(txtfristname.Text, txtlastname.Text, txtusernameregister.Text, txtpasswordregister.Text)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...