Я получил эту ошибку, когда пытался обновить данные в списке данных.это код, который я использовал для редактирования, обновления и удаления данных из списка данных.удаление работает, но обновление не работает, поскольку я изменяю что-то к предыдущим данным путем редактирования.когда я нажимаю кнопку обновления, появляется сообщение об ошибке «Ссылка на объект не установлена для экземпляра объекта».
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
bindDataList()
End Sub
Protected Sub DataList1_CancelCommand(ByVal source As Object, ByVal e As DataListCommandEventArgs)
DataList1.EditItemIndex = -1
bindDataList()
End Sub
Protected Sub DataList1_DeleteCommand(ByVal source As Object, ByVal e As DataListCommandEventArgs)
con.Open()
Dim cmd As New SqlCommand("delete from tblEmployee ", con)
cmd.ExecuteNonQuery()
con.Close()
DataList1.EditItemIndex = -1
bindDataList()
End Sub
Protected Sub DataList1_UpdateCommand(ByVal source As Object, ByVal e As DataListCommandEventArgs)
con.Open()
Dim cmd As New SqlCommand()
cmd = New SqlCommand("update tblEmployee set Name=@Name", con)
cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = DirectCast(DataList1.Controls(0).FindControl("txtEmployeeName"), TextBox).Text
cmd.ExecuteNonQuery()
con.Close()
DataList1.EditItemIndex = -1
bindDataList()
End Sub
Protected Sub DataList1_EditCommand(ByVal source As Object, ByVal e As DataListCommandEventArgs)
DataList1.EditItemIndex = e.Item.ItemIndex
bindDataList()
End Sub
Sub bindDataList()
Dim mycommand As New SqlCommand("SELECT * FROM tblEmployee where id= '5'", con)
con.Open()
DataList1.DataSource = mycommand.ExecuteReader
DataList1.DataBind()
con.Close()
End Sub
И дизайн списка данных находится здесь.
<asp:DataList ID="DataList1" runat="server" OnCancelCommand="Datalist1_CancelCommand" OnDeleteCommand="Datalist1_DeleteCommand" OnEditCommand="Datalist1_EditCommand" OnUpdateCommand="Datalist1_UpdateCommand">
<ItemTemplate>
<div style="text-align:center">
<table>
<tr><td style="width:200px; height:25px" align="left">
<asp:Label ID="lblFirstName" runat="server" Text='<%#DataBinder.Eval(Container.Dataitem, "Name")%>'></asp:Label>
</td>
<td style="width:50px; height:25px">
<asp:LinkButton ID="lnkEdit" runat="server" CommandName="Edit">Edit</asp:LinkButton></td>
<td style="width:50px; height:25px">
<asp:LinkButton ID="lnkDelete" runat="server" CommandName="Delete">Delete</asp:LinkButton></td>
</tr>
</table>
</div>
</ItemTemplate>
<EditItemTemplate>
<table>
<tr>
<td style="width:200px; height:25px" align="left">
<asp:TextBox ID="txtEmployeeName" runat="server" Text='<%#DataBinder.Eval(Container.Dataitem, "Name")%>'></asp:TextBox>
</td>
<td style="width:50px; height:25px" align="left">
<asp:LinkButton ID="lnkUpdate" runat="server" CommandName="Update">Update</asp:LinkButton>
</td>
<td style="width:50px; height:25px" align="left">
<asp:LinkButton ID="lnkCancel" runat="server" CommandName="Cancel">Cancel</asp:LinkButton>
</td>
</tr>
</table>
</EditItemTemplate>
<HeaderTemplate>
<table style="width:300px">
<tr><td style="width:200px; height:25px" align="left">
<strong>Employee Name</strong>
</td>
<td style="width:200px; height:25px"></td>
<td style="width:200px; height:25px"></td>
</tr>
</table>
</HeaderTemplate>
</asp:DataList>
Я думаю, что проблема где-то в команде обновления.здесь первые две строки трассировки стека NullReferenceException: ссылка на объект не установлена на экземпляр объекта.] ASP.default_aspx.DataList1_UpdateCommand (источник объекта, DataListCommandEventArgs e).Я не могу поймать, где я ошибся.Пожалуйста, помогите мне