尝试从数据库中将1显示为YES时出错

本文关键字:显示 YES 出错 数据库 | 更新日期: 2023-09-27 17:59:37

我在一个名为ActDefect的数据库中有一列显示null或1。在我的GridView中,我希望它显示YES而不是1,如果为null,则显示NO。但我得到了这个错误:

指定的参数超出了有效值的范围。参数名称:索引

这是ActDefect的代码:

<asp:BoundField DataField="ActDefect" HeaderText="Defects" SortExpression="ActDefect"></asp:BoundField>
int index = gv.Columns.HeaderIndex("ActDefect");
if (main.ActDefect != null)
{
      e.Row.Cells[index].Text = "YES";
}
else
{
      e.Row.Cells[index].Text = "NO";
}

它说错误在e.Row.Cells[index].Text = "YES";

尝试从数据库中将1显示为YES时出错

您可以尝试更改此

int index = gv.Columns.HeaderIndex("ActDefect");

到这个

int index = gv.Columns.HeaderIndex("Defects");

此外,如果这不起作用,则改为:

<asp:BoundField DataField="ActDefect" HeaderText="Defects" SortExpression="ActDefect"></asp:BoundField>

写这个

<asp:TemplateField HeaderText="Defects">
    <ItemTemplate>
        <asp:Label Text='<%# String.IsNullOrEmpty(Eval("ActDefect").ToString())  ? "No" : "Yes" %>' runat="server"  id="myID"/>
    </ItemTemplate>
</asp:TemplateField>

并且您可以删除您的C#代码

在"index"的值到达IF语句之前,您是否对其进行了去错误和检查?在网格视图中确定标题为ActDefect的列可能有问题