gpt4 book ai didi

mysql - .NET - 通过连接到数据库导入类

转载 作者:行者123 更新时间:2023-11-29 22:22:45 25 4
gpt4 key购买 nike

我想将一个类导入另一个类,这样我就不必编写相同的代码 X 次。

我有一个名为 connectDB.vb 的数据库连接文件。

Imports MySql.Data.MySqlClient

Namespace connectDB1
Public Class connectDB
Dim connection As New MySqlConnection("Server=localhost; UserId=root;
Password=root; Database=something")

Public Sub doConnection()
Try
connection.Open()
Catch ex As Exception
MsgBox("Error")
End Try
End Sub
End Class
End Namespace

我想将 connectDB.vb 导入到 File1.vb

Imports MySql.Data.MySqlClient
Imports MyApp.connectDB1

Public Class File1

Dim connectDataBase As New connectDB
Dim connection As New MySqlConnection("Server=localhost; UserId=root; Password=root; Database=something")

Private Sub File1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'doConnection()
connectDataBase.doConnexion()
End Sub

'Private Sub doConnection()
' Try
' connection.Open()
' Catch ex As Exception
' MsgBox("Error")
' End Try
'End Sub

Private Sub addProduct()
Dim dbcomm As MySqlCommand
Dim dbread As MySqlDataReader

If txtBoxQuantity.Text <> "" And txtBoxPrice.Text <> "" And txtBoxProduct.Text <> "" Then
dbcomm = New MySqlCommand("insert into products (price, stock, name) values(@price, @stock, @name)", connection)
dbcomm.Parameters.AddWithValue("@price", txtBoxPrice.Text())
dbcomm.Parameters.AddWithValue("@stock", txtBoxQuantity.Text())
dbcomm.Parameters.AddWithValue("@name", txtBoxProduct.Text())
dbread = dbcomm.ExecuteReader() ' GIVES ERROR
dbread.Close()
End If
End Sub

Private Sub add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles agregarProducto.Click
addProduct()
End Sub
End Class

但是当我运行这段代码时,它应该将数据保存在数据库中,但它给了我这个错误:

InvalidOperationException 未处理。连接必须有效且打开。

自从我调试以来,connectDB.vb 连接到数据库,并且它连接到数据库,但是当我想在 File1.vb 中执行一些 sql 语句时,它会出现该错误。

在不尝试导入类的情况下,代码可以工作,但我只是想改进我的代码,因为您可以看到注释的代码是我用来连接数据库的代码。

最佳答案

尝试添加这个

Public Sub New()
connectDataBase = New connectDB()
connection = New MySqlConnection("Server=localhost; UserId=root; Password=root; Database=something")
End Sub

关于mysql - .NET - 通过连接到数据库导入类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30559315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com