【问题标题】:using repeater control to display an image from database C#使用转发器控件显示来自数据库 C# 的图像
【发布时间】:2016-09-07 16:14:17
【问题描述】:

我有一个图书数据库(现在总共 2 本书),其中每本书我都有一个名为“图像”的行,其中包含图像的名称。 例如。 cprog.jpeg 和 asm.jpeg

使用转发器,我可以显示书籍信息,如姓名、作者等。但我不知道如何让图像显示。图像存储在 images 文件夹中。

这是aspx的问题吗?因为,它可以很好地显示书名和描述。

<asp:Repeater ID="Repeater1" runat="server">
        <ItemTemplate>
 <%# DataBinder.Eval(Container.DataItem, "BookName") %>
 <hr>
 <%# DataBinder.Eval(Container.DataItem, "BookDescription") %>
 <td width="100px">
  <p align="left">


 <img src= '<%# DataBinder.Eval(Container.DataItem, "Image") %>.jpeg'  
 alt="" style="height:200px;width:200px;border:1px solid gray;"/>

  </td>
  </p>


后面的代码

String connectionString = "Data Source=" + Server.MapPath(@"~\App_Data\bookDB.db");
        String selectCommand = String.Format("Select * from Book where CategoryName = '{0}'", Request.QueryString);
        SQLiteConnection myConnection = new SQLiteConnection();
        myConnection.ConnectionString = connectionString;
        myConnection.Open();
        SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter(selectCommand, myConnection);

        myConnection.Close();
        // DataSet ds = new DataSet();
        dataAdapter.Fill(ds2);


        DataTable table = new DataTable();
        dataAdapter.Fill(table);
        Repeater1.DataSource = table;
        Repeater1.DataBind();

有一次,当我运行项目时,损坏的图像出现了一秒钟然后消失了。我花了最后两天试图得到这个无济于事...... 谢谢。

【问题讨论】:

  • 下次请不要等两天再问。

标签: c# asp.net


【解决方案1】:

假设图像文件夹是/images,添加文件夹名称并删除扩展名(已在您的问题中提到的数据库中)应该显示图像:

<img src='/images/<%# DataBinder.Eval(Container.DataItem, "Image") %>'  
alt="" style="height:200px;width:200px;border:1px solid gray;"/>

如果这没有产生预期的结果,请检查 html 输出并将其与真实 url 进行比较 - 有什么不同?

【讨论】:

  • 这会显示第二张图片而不是第一张。为什么不显示第一张?请记住,两个图像都在图像文件夹中
【解决方案2】:

您必须输入图像文件夹的路径,以便网络服务器知道从哪里提供您的图像:

<img src= 'images/<%# DataBinder.Eval(Container.DataItem, "Image") %>'  
 alt="" style="height:200px;width:200px;border:1px solid gray;"/>

此外,由于您在数据库中的图像名称已经包含扩展名,因此您必须将其从转发器绑定中删除。

根据您上面的示例,将解析为:

<img src= 'images/cprog.jpeg' alt="" style="..."/>

【讨论】:

    【解决方案3】:

    您可以使用此代码在 asp.net 页面上加载位图图像。

    <img src="data:image/jpeg;base64,<%# ((string)Container.DataItem) %>" 
    width="100" height="100"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-21
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 2013-05-19
      • 2018-04-02
      • 1970-01-01
      相关资源
      最近更新 更多