【问题标题】:Public function in VB.NETVB.NET 中的公共函数
【发布时间】:2023-03-08 14:11:01
【问题描述】:

我想为我的整个项目编写一个全局函数,以便在各种形式中使用。我尝试创建一个公共模块并创建一个公共函数,但是当我将它调用到我的表单时,它会产生错误。

假设我的全局函数是关于连接到数据库的。然后当我调用它时,它说连接属性没有初始化。

在我的函数文件中,我使用了:

 Imports System.Data.SqlClient
 Public Module Connection
    Dim myConnection As SqlConnection
    Public Sub ConnectToDatabase()
       myConnection = New SqlConnection(".............")
       myConnection.Open()
    End Sub
 End Module

在我的表格中,我使用了:

 Private Sub Form_Load(...........) Handles MyBase.Load
    ConnectToDatabase()   'I call the function here
    ...............................................
 End Sub

这不起作用。 谢谢。

【问题讨论】:

  • 你能提供一些代码来显示什么不起作用吗?
  • 当你说“这不起作用”时,它怎么不起作用?我猜“ConnectToDatabase()”没有被识别?这里可能还有一个设计问题——SqlConnections 实现 IDisposable;通常最好用“使用语句”围绕它们。此外,保持连接打开的时间超过必要的时间通常是不好的。只是需要考虑的小观察 - 让我们知道异常/编译器警告是什么
  • 它的错误是the connection property has not been initialized
  • 在哪一行?您提供的所有行都没有消耗连接,所以我猜是一些不同的代码?
  • ConnectToDatabase() 下面的行。它们例如myCommand = New SqlCommand(".....",myConnection) myCommand.ExecuteScalar。因此它拒绝最后一条语句

标签: vb.net function


【解决方案1】:

我怀疑这与这是一个公共模块或公共函数这一事实无关,而与您没有正确初始化连接这一事实有关。

试试下面的代码:

Imports System.Data.SqlClient
Imports System.Data

Public Sub ConnectToSQL()
    Dim con As New SqlConnection
    Dim cmd As New SqlCommand
    Try
        con.ConnectionString = "Data Source=atisource;Initial Catalog=BillingSys;Persist Security Info=True;User ID=sa;Password=12345678"
        con.Open()
    Catch ex As Exception
        MessageBox.Show("Error while connecting to SQL Server." & ex.Message) Finally
        con.Close() 'Whether there is error or not. Close the connection.
    End Try
End Sub 

【讨论】:

    猜你喜欢
    • 2015-09-24
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    • 2012-04-08
    • 2013-05-23
    • 1970-01-01
    相关资源
    最近更新 更多