VB.NET中的公共函数

VB.NET中的公共函数,vb.net,function,Vb.net,Function,我想为我的整个项目编写一个全局函数,用于各种形式。我尝试创建一个公共模块并创建一个公共函数,但当我将其调用到表单时,它会生成错误 假设我的全局函数是关于连接到数据库的。然后当我调用它时,它说连接属性没有初始化 在我的函数文件中,我使用了: Imports System.Data.SqlClient Public Module Connection Dim myConnection As SqlConnection Public Sub ConnectToDatabase()

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

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

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

 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
这是行不通的。
谢谢。

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

请尝试以下代码:

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 

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

请尝试以下代码:

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 

你能提供一些代码来说明什么不起作用吗?当你说“这不起作用”时,它怎么不起作用?我猜“ConnectToDatabase()”未被识别?这里可能还有一个设计问题——SqlConnections实现IDisposable;通常最好用“使用语句”来围绕它们。此外,保持连接打开的时间过长通常是不好的。只需稍加考虑,让我们知道异常/编译器警告是什么错误,它是代码>连接属性尚未初始化< /代码>。在哪条线上?您提供的任何一行都不使用连接,因此我猜测使用的是不同的代码?下面的
ConnectToDatabase()
。例如
myCommand=newsqlcommand(“…”,myConnection)myCommand.ExecuteScalar
。因此,它拒绝了最后一句话。你能提供一些代码来说明什么不起作用吗?当你说“这不起作用”时,它怎么不起作用?我猜“ConnectToDatabase()”未被识别?这里可能还有一个设计问题——SqlConnections实现IDisposable;通常最好用“使用语句”来围绕它们。此外,保持连接打开的时间过长通常是不好的。只需稍加考虑,让我们知道异常/编译器警告是什么错误,它是代码>连接属性尚未初始化< /代码>。在哪条线上?您提供的任何一行都不使用连接,因此我猜测使用的是不同的代码?下面的
ConnectToDatabase()
。例如
myCommand=newsqlcommand(“…”,myConnection)myCommand.ExecuteScalar
。因此,它拒绝了最后一项声明