Asp.net asp网格视图中布尔db列的表示

Asp.net asp网格视图中布尔db列的表示,asp.net,gridview,Asp.net,Gridview,我的数据库中有一列接受真值或假值。我想显示其值网格视图列,并使用以下代码取消我的db列名: <asp:TemplateField HeaderText="کنسل شده" SortExpression="IsCancelled"> <ItemTemplate>%#Boolean.Parse(Eval("IsCancelled").ToString())) ? "Yes" : "No" %></I

我的数据库中有一列接受真值或假值。我想显示其值网格视图列,并使用以下代码取消我的db列名:

<asp:TemplateField HeaderText="کنسل شده" SortExpression="IsCancelled">
                                <ItemTemplate>%#Boolean.Parse(Eval("IsCancelled").ToString())) ? "Yes" : "No" %></ItemTemplate>
                            </asp:TemplateField>
但我得到了以下例外:

中发生“System.NullReferenceException”类型的异常 App_Web_jcvfb4rq.dll,但未在用户代码中处理

其他信息:对象引用未设置为 反对


如果您使用的是C,请尝试下面的解决方案。请注意,VB中没有IIF

<asp:TemplateField HeaderText="کنسل شده" SortExpression="IsCancelled">
    <ItemTemplate>
        <%#IIf(Boolean.Parse(Eval("IsCancelled").ToString()), "Yes", "No")%>
    </ItemTemplate>
</asp:TemplateField>

如果在不部署的情况下调试代码,是否会遇到此问题?我怀疑您在部署后会出现此错误,因为编译文件App_Web_XXX中出现异常

所以首先我们需要知道你们当地是否有这样的问题。如果是,那么调试就更容易知道这是否正是出现问题的那一行

一旦您确认了存在问题的确切线路。您可以尝试以下操作:

1检查并确保您调用的特定表中存在IsCancelled列,并且没有输入错误,因为名称必须匹配

2检查数据源中的select语句。确保select命令能够返回该列

3可能不相关,但您可以尝试转换为Convert.ToInt32,并检查值是1还是0

由于错误与强制转换或转换问题无关,可能是因为无法找到或读取IsCancelled


希望这有帮助

响应写入标记%之前存在缺少的标记打开。可能是它导致了错误。您似乎也从DB获得了NULL值..我添加了缺少的标记,但没有解决我这样做的原因是它有错误:错误:无法从“object”转换为“string”@saeedgarmsiri您是否尝试添加.ToString?比如布尔。ParseValisCancelled。ToString@Amnesh Goel是的,我当然这么做了@saeedgarmsiri我已经更新了我的答案。。检查一下。。使用IIf@Amnesh Goel我做了,但使用单个qoute时有错误:错误:字符literalit中的字符太多它可以读取被取消,因为当我写下面的代码时,它应该是列数据。如果字段值为true,它在网格视图单元格中表示true
<asp:TemplateField HeaderText="کنسل شده" SortExpression="IsCancelled">
    <ItemTemplate><%# (Boolean.Parse(Eval("IsCancelled").ToString())) ? "Yes" : "No" %></ItemTemplate>
</asp:TemplateField>
Protected Sub GridName_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridName.RowDataBound
    If e.Row.RowType = DataControlRowType.DataRow Then
        If e.Row.Cells(13).Text = "True" Then
            e.Row.Cells(13).Text = "Yes"
        Else
            e.Row.Cells(13).Text = "No"
        End If
    End If
End Sub