Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将默认图像设置为空值的图像字段_C#_Asp.net - Fatal编程技术网

C# 将默认图像设置为空值的图像字段

C# 将默认图像设置为空值的图像字段,c#,asp.net,C#,Asp.net,我有一个asp.net程序,其中图像以字节格式存储在sql数据库中。当我搜索每个项目时,该值将与图像一起显示在gridview中。某些产品没有图像,值为空。所以我需要为空值设置一个默认图像。我该怎么做?请帮忙。 这是我的密码 'alt=图像高度=250px宽度=275px/> 因为实际上是在页面上呈现,很难在一行中进行复杂的逻辑操作,所以我要做的是调用一个函数,在该函数中我实现了我的逻辑,下面是一个基于您的问题的示例: 关于asp.net和内部GridView <asp:TemplateF

我有一个asp.net程序,其中图像以字节格式存储在sql数据库中。当我搜索每个项目时,该值将与图像一起显示在gridview中。某些产品没有图像,值为空。所以我需要为空值设置一个默认图像。我该怎么做?请帮忙。 这是我的密码

'alt=图像高度=250px宽度=275px/> 因为实际上是在页面上呈现,很难在一行中进行复杂的逻辑操作,所以我要做的是调用一个函数,在该函数中我实现了我的逻辑,下面是一个基于您的问题的示例:

关于asp.net和内部GridView

<asp:TemplateField >
    <ItemTemplate >
      <%#GetImage(Container.DataItem)%>
    </ItemTemplate>
</asp:TemplateField>
关于代码隐藏

protected string GetImage(object oItem) 
{
    // read the data from database
    var cImgSrc = DataBinder.Eval(oItem, "img") as byte[];

    // if we do not have any image, return some default.
    if(cImgSrc == System.DBNull)
        return "<img src=\"empty.gif\">"
    else
        // format and render back the image
        return String.Format("<img src=\"data:image/jpg;base64,{0}\" alt=\"image\" height=\"250px\" width=\"275px\"/>", 
            Convert.ToBase64String((byte[])cImgSrc));
}
行数据绑定

使用SQL视图

您可以使用RowDataBound,但每行都会触发RowDataBound,这会降低web应用程序的速度。因此,对于RowDataBound,请使用SQL视图

对于当前场景,创建一个带ISNULL的sql视图,如下所示

从tableName中选择col1、col2、ISNULLImgCol作为ImgCol


然后将上述查询绑定到C数据表,并将该数据表与asp GridView绑定,代码在哪里?GridView?是的,在gridviewSir中,它在返回时显示error@vishnusuresh错误说明了什么?。除了错误,请我不能调试你的代码,这是主要的想法,你需要采取行动,向前迈进一步,使之适应你的项目。
<asp:TemplateField >
    <ItemTemplate >
      <%#GetImage(Container.DataItem)%>
    </ItemTemplate>
</asp:TemplateField>