我正在尝试从此类启动命令:
Imports System.Data.OleDb
Imports System.IO
Public Class GestionSql
Private sReturn As String = ""
Private sConection As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" +Directory.GetCurrentDirectory() + "\TPV.mdb;"
Private oConection As OleDb Connection
Public oCommand As New OleDbCommand
Public Function Launch(ByVal value As String) As String
Try
oConection.Open()
oConection = New OleDbConnection(sConection)
oCommand.CommandText = Value
sReturn = oCommand.ExecuteNonQuery()
oConection.Close()
MessageBox.Show("La contraseña es: " + sReturn.ToString)
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
Return sReturn
End Function
End Class
在这堂课中:
Public Class IDVendedor
Private GestionSql As New GestionSql
Private sCmd As String
Private sPass As String
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'Montamos y lanzamos el comando
sCmd = "SELECT Password FROM Vendedores WHERE Id=" + id.Text
sPass = GestionSql.Launch(sCmd)
End Sub
End Class
我得到错误:
你调用的对象是空的。它告诉我错误在 sCmd 参数的 ExecuteNonQuery 中。
错误
Referencia a objeto no establecida como instancia de un objeto
将在编程世界中陪伴您多年,但很快您就会习惯立即知道错误在哪里:)那条消息是什么意思?
您正在从尚未初始化(“未设置为对象的实例”)的对象变量(“对象引用”)读取属性或执行函数。也就是说,您声明了一个变量并使用了它,而没有先给它赋值。
错误出现在捕获的第 15 行,因为您已经反转了变量的初始化
oConexion
(第 16 行)和第一次使用(第 15 行):要解决此问题,您只需
oConexion
在打开连接之前初始化变量:在代码中,我看到您在初始化之前尝试使用 oConnection,理论上您的问题可以通过更改来解决:
为了这:
说明:
oConection
它与被初始化或未被初始化相同null
,null
您无法访问其方法或属性,因此在调用之前.open()
您需要在使用=new
创建此对象的新实例时为其分配一个值,这就是您避免Object not错误初始化。我看到的是您需要初始化 oConnection,但您必须对其进行验证,检查图像以查看它是否可以以任何方式帮助您。
最后我通过以下方式解决了它: