2010-12-01 107 views
-1

当我运行下面的代码它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 

我该如何解决这个问题?

+0

哪行代码抛出异常?此外,如果您将其格式化为代码,则会更容易阅读。 – Chaulky 2010-12-01 16:31:01

+0

[对象引用未设置为对象实例]的可能重复(http://stackoverflow.com/questions/548932/object-reference-not-set-to-an-instance-of-an-object) – Justin 2011-12-16 15:02:28

回答

0

这是艰难而不堆栈跟踪(也许你能提供吗?)说了,但我的猜测,看着你的代码是以下行返回null

Dim label11 As Label = CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("Label11") 

,你试图设置它的“Text”属性在这里,即使变量为空(null对象上访问属性)

label11.Text = dtrReader("EmployeeId") 
0

您的FindControl致电正在返回null

0

就尝试用以下并检查是否异常仍出现更换label11.Text = dtrReader("EmployeeId")

If Not label11 Is Nothing Then 
label11.Text = dtrReader("EmployeeId") 
End If 

如果异常没有显示出来,这意味着你的FindControl方法是无法找到ID为“Label11”,从而label11分配一个空值的控制。

相关问题