【问题标题】:I want my code to be like Moduler. Anybody can help? VB.NET我希望我的代码像 Moduler。有人可以帮忙吗? VB.NET
【发布时间】:2020-04-25 12:23:14
【问题描述】:
        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()

我的代码已经可以运行,但我想成为模块化程序......任何人都可以帮忙吗??

【问题讨论】:

标签: sql .net vb.net


【解决方案1】:

我能弄清楚你所说的模块化是指将用户界面代码与数据访问代码分开。 我为您的所有数据库代码创建了一个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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 2023-03-06
    相关资源
    最近更新 更多