错误 - 对象引用不设置到对象的实例
问题描述:
当我运行下面的代码它thows以下错误:错误 - 对象引用不设置到对象的实例
"Object reference not set to an instance of an object."
Protected Sub CreateUserWizard1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles CreateUserWizard1.Load
Dim SQLData As New System.Data.SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;User Instance=True")
Dim cmdSelect As New System.Data.SqlClient.SqlCommand("SELECT TOP 1 EmployeeId FROM a1_admins Order by Id DESC", SQLData)
Dim label11 As Label = CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("Label11")
SQLData.Open()
Dim dtrReader As System.Data.SqlClient.SqlDataReader = cmdSelect.ExecuteReader()
If dtrReader.HasRows Then
While dtrReader.Read()
label11.Text = dtrReader("EmployeeId")
End While
End If
dtrReader.Close()
SQLData.Close()
End Sub
End Class
我该如何解决这个问题?
答
这是艰难而不堆栈跟踪(也许你能提供吗?)说了,但我的猜测,看着你的代码是以下行返回null
Dim label11 As Label = CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("Label11")
,你试图设置它的“Text”属性在这里,即使变量为空(null对象上访问属性)
label11.Text = dtrReader("EmployeeId")
答
您的FindControl
致电正在返回null
。
答
就尝试用以下并检查是否异常仍出现更换label11.Text = dtrReader("EmployeeId")
。
If Not label11 Is Nothing Then
label11.Text = dtrReader("EmployeeId")
End If
如果异常没有显示出来,这意味着你的FindControl
方法是无法找到ID为“Label11
”,从而label11
分配一个空值的控制。
哪行代码抛出异常?此外,如果您将其格式化为代码,则会更容易阅读。 – Chaulky 2010-12-01 16:31:01
[对象引用未设置为对象实例]的可能重复(http://stackoverflow.com/questions/548932/object-reference-not-set-to-an-instance-of-an-object) – Justin 2011-12-16 15:02:28