gpt4 book ai didi

c# - 将二进制字段绑定(bind)到 ASP.NET DataGrid 导致错误

转载 作者:太空宇宙 更新时间:2023-11-03 21:44:33 26 4
gpt4 key购买 nike

我有一个数据集,其中一个字段名为 "Reviewed"

此数据集已填充,下图显示了它的数据: enter image description here

现在我试图在 DataGrid 中显示此数据集:

<ASP:TemplateColumn HeaderText="Reviewed" HeaderStyle-HorizontalAlign="center" HeaderStyle-Wrap="True">
<ItemStyle Wrap="false" HorizontalAlign="center" />
<ItemTemplate>
<ASP:Checkbox Checked='<%# DataBinder.Eval(Container.DataItem, "Reviewed") %>' runat="server" ID="Label22" />
</ItemTemplate>
<EditItemTemplate>
<Asp:Checkbox id="Textbox5" width="40" Checked='<%# DataBinder.Eval(Container.DataItem, "Reviewed") %>' runat="server" />
</EditItemTemplate>
</ASP:TemplateColumn>

我收到以下错误:

Exception Details: System.InvalidCastException: Cast from type 'DBNull' to type 'Boolean' is not valid.

我做错了什么?问题是 DBNull 是从哪里来的?

================================

更新:

感谢您的精彩回答。我的主要困惑点是“愚蠢”的 XML 可视化工具错误地将已检查字段显示为已选中(如上图所示)。我检查了数据集本身的值,发现所有值确实都是 DBNUll。

最佳答案

这意味着您的某些来自数据库的数据为空。您需要在分配之前检查它。您可能想要分配一个默认值 Like。

iif((DataBinder.Eval(Container.DataItem, "Reviewed") is DbNull.Value),false, DataBinder.Eval(Container.DataItem, "Reviewed")))

您还可以创建一个方法来检查 DBNULL 和空值并返回适当的值。喜欢(它可能有语法错误,您可以更正)

<Asp:Checkbox id="Textbox5" width="40" Checked='<%# YourMethod(Eval("Reviewed")) %>' runat="server" />

关于c# - 将二进制字段绑定(bind)到 ASP.NET DataGrid 导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17725715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com