Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 打开连接时未处理NullReferenceException_Vb.net_Winforms - Fatal编程技术网

Vb.net 打开连接时未处理NullReferenceException

Vb.net 打开连接时未处理NullReferenceException,vb.net,winforms,Vb.net,Winforms,我在这段代码中得到一个错误:对象引用未设置为对象的实例 如何修复此错误?这意味着您使用的变量为null(未设置为指向任何对象的实例)。在这种情况下,con必须为null,因此需要检查它是否为null,如果为null,则将其设置为新对象。例如: If con Is Nothing Then con = New OleDbConnection() ' Or whatever type it is... End If con.ConnectionString = strcon con.Ope

我在这段代码中得到一个错误:对象引用未设置为对象的实例


如何修复此错误?

这意味着您使用的变量为null(未设置为指向任何对象的实例)。在这种情况下,
con
必须为null,因此需要检查它是否为null,如果为null,则将其设置为新对象。例如:

If con Is Nothing Then
    con = New OleDbConnection()  ' Or whatever type it is...
End If
con.ConnectionString = strcon
con.Open()
Dim conn As New OleDbConnection()
或者,更好的做法是,在声明变量时将其设置为新对象,如果合适,例如:

If con Is Nothing Then
    con = New OleDbConnection()  ' Or whatever type it is...
End If
con.ConnectionString = strcon
con.Open()
Dim conn As New OleDbConnection()
但是,正如Tim指出的,最好在每次需要时创建一个新连接,然后可以使用
Using
块,该块将在每次正确处理对象时:

Using con As New OleDbConnection(strcon)
    con.Open()
    ' Use the connection ...
End Using

这意味着您使用的变量为null(未设置为指向任何对象的实例)。在这种情况下,
con
必须为null,因此需要检查它是否为null,如果为null,则将其设置为新对象。例如:

If con Is Nothing Then
    con = New OleDbConnection()  ' Or whatever type it is...
End If
con.ConnectionString = strcon
con.Open()
Dim conn As New OleDbConnection()
或者,更好的做法是,在声明变量时将其设置为新对象,如果合适,例如:

If con Is Nothing Then
    con = New OleDbConnection()  ' Or whatever type it is...
End If
con.ConnectionString = strcon
con.Open()
Dim conn As New OleDbConnection()
但是,正如Tim指出的,最好在每次需要时创建一个新连接,然后可以使用
Using
块,该块将在每次正确处理对象时:

Using con As New OleDbConnection(strcon)
    con.Open()
    ' Use the connection ...
End Using

我假设您得到该错误是因为连接尚未初始化。但我建议您不要使用字段,而是创建一个局部变量,因为您应该始终使用
using
-语句尽快关闭连接。因此,在需要的地方创建一个连接,而不是全局连接

因此,这将修复它(但不建议):

Private Sub frmAdd_Load(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load
con=新的SqlConnection(strcon)

con.Open()“我假定您会收到该错误,因为连接尚未初始化。但我建议您不要使用字段,而是创建一个局部变量,因为您应该始终使用
using
-语句尽快关闭连接。因此,在需要的地方创建一个连接,而不是全局连接

因此,这将修复它(但不建议):

Private Sub frmAdd_Load(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load
con=新的SqlConnection(strcon)

con.Open()'我在sub外部初始化了它。这是我用来初始化连接Dim strcon=(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=“&System.Environment.CurrentDirectory&“\Supplies.mdb”)@rararaarar您已初始化
strcon
。您尚未初始化
con
。我已在sub外部对其进行了初始化。这是我用来初始化连接Dim strcon=(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=“&System.Environment.CurrentDirectory&“\Supplies.mdb”)@RaraArar您已初始化
strcon
。您尚未初始化
con
。con是我的连接。我已将其初始化为:Dim con as oledbconnection,它不创建对象,只声明一个变量(可能指向对象,也可能不指向对象)。谢谢Steven的回答。没问题。有关更多信息,请查看我对这个问题的回答:您可能会发现informational.con是我的连接。我已将其初始化为:Dim con as oledbconnection,它不创建对象,只声明一个变量(可能指向对象,也可能不指向对象)。谢谢Steven的回答。没问题。要了解更多信息,请查看我对这个问题的回答:您可能会发现这些信息。