得到错误-对象不能从DBNull强制转换为其他类型.在编辑数据类型为位的状态列时
本文关键字:编辑 类型 其他 数据类型 状态 转换 对象 错误 不能 DBNull | 更新日期: 2023-09-27 18:17:44
当编辑状态列网格视图时,我得到这个错误-对象不能从DBNull转换为其他类型。我在表中新添加了一列状态(位,null),因此状态列具有空值。绑定状态列时出现NULL值错误。
<asp:TemplateField HeaderText="status">
<ItemTemplate>
<asp:Label ID="lblstatus" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "status") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="chkEditStatus" runat="server" Checked='<%# Convert.ToBoolean(Eval("status")) %>' />
</EditItemTemplate>
<FooterTemplate>
<asp:CheckBox ID="chkAddStatus" runat="server" Checked='<%# Convert.ToBoolean(Eval("status")) %>' />
</FooterTemplate>
</asp:TemplateField>
如何编辑edititem模板,以便在编辑网格时不会出现此错误?
这是因为您正在尝试将DBNull转换为布尔值,您需要在检索数据时检查这一点,并在从DB获取数据时相应地进行计算:-
bool status = reader["status"] is DBNull ? false : Convert.ToBoolean(reader["status"]);