当我运行以下代码时,它会出现以下错误:
“对象引用未设置为对象的实例。”
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
我该如何解决这个问题?
答案 0 :(得分:0)
您的FindControl
来电正在返回null
。
答案 1 :(得分:0)
很难说没有堆栈跟踪(也许你可以提供它?),但我的猜测,看看你的代码是以下行返回null
Dim label11 As Label = CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("Label11")
并且你试图在这里设置它的“Text”属性,即使该变量为null(访问空对象上的属性)
label11.Text = dtrReader("EmployeeId")
答案 2 :(得分:0)
尝试使用以下内容替换label11.Text = dtrReader("EmployeeId")
并检查是否仍然出现异常。
If Not label11 Is Nothing Then
label11.Text = dtrReader("EmployeeId")
End If
如果未显示异常,则表示您的FindControl
方法无法找到ID为“Label11
”的控件,从而为label11
分配空值。< / p>