Checkbox 更新工作,除非我选中某个复选框,然后datetime.now.ToString抛出错误

Checkbox 更新工作,除非我选中某个复选框,然后datetime.now.ToString抛出错误,checkbox,nullreferenceexception,formview,Checkbox,Nullreferenceexception,Formview,我希望能够在更新formview中的行时设置时间戳,只有在不选中PendingBit复选框的情况下,它才会起作用。我已经花了一天半的时间来解决这个问题,但我对这个问题还不熟悉,我真的非常感谢你的帮助。因为这个错误非常普遍,所以我很难找到任何适用于我的情况的错误 错误如下:对象引用未设置为对象的实例 有问题的代码行是: UpdDate.Text=DateTime.Now.ToStringyyyy-MM-dd hh:MM:ss tt 完整事件代码为: 受保护的子FormView1\u DataBou

我希望能够在更新formview中的行时设置时间戳,只有在不选中PendingBit复选框的情况下,它才会起作用。我已经花了一天半的时间来解决这个问题,但我对这个问题还不熟悉,我真的非常感谢你的帮助。因为这个错误非常普遍,所以我很难找到任何适用于我的情况的错误

错误如下:对象引用未设置为对象的实例

有问题的代码行是: UpdDate.Text=DateTime.Now.ToStringyyyy-MM-dd hh:MM:ss tt

完整事件代码为: 受保护的子FormView1\u DataBoundsender作为对象,e作为EventArgs处理FormView1.DataBound

If FormView1.CurrentMode = FormViewMode.Edit Then
  Dim UpdDate As TextBox = TryCast(FormView1.FindControl("UpdDateTextBox"), TextBox)
  'line below updates update textbox on formview before page reloads but causes object reference not set to an instance of the object
  UpdDate.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt")

  '''' UpdDate.Text = TryCast(FormView1.FindControl("label2"), Label).ToString()


  Response.Write("DataBound")
End If
端接头

请让我知道您是否需要标记或代码隐藏中的其他代码。除非你提出要求,否则我不想让你费力地阅读我所有的代码

谢谢!
P.S.C代码可以。我可以使用调试器将其转换为VB

并逐步完成代码,找出未设置的对象引用。我的赌注是在文本框=TryCastFormView1.FindControl…的Dim UpdDate之后的UpdDate,因为您从不检查FindControl是否确实找到了任何内容,然后使用UpdDate.Text。您还可以使用FindControllabel2、Label.ToString,而不检查是否确实找到了任何内容,然后再次使用UdpDate.Text。调试器将检查我是否正确:-你是对的。前面有4英尺的那条线只是我昨天做的一次尝试。以Update.Text开头并将其设置为updateTextBox的行是我要使用的。由于找不到UpdDateTextBox,但我在标记中有一个具有该名称的文本框,您知道可能有什么问题吗?为什么只要我没有选中FV中的复选框,就允许更新?在任何事件中,我都没有与code behind中的复选框相关的任何代码,但在FV的SQL select中,我检查PendingBit=0。将ckbx colfield更新为checked意味着不再显示该记录。我不知道,但我不知道为什么需要FindControl。您总是在那里使用UpdDateTextBox,因此只需删除所有TryCast和FindControl废话,直接使用FormView1.UpdDateTextBox.Text,或者更好的方法是使用Me.UpdDateTextBox.Text,或者直接使用Dim UpdDate将其指定为TextBox=FormView1.UpdDateTextBox。label2也是如此——您总是在这个块中引用它,所以直接使用它。如果您选择不这样做,至少在使用返回值之前测试FindControl是否找到了某些内容。