【问题标题】:Inserting image on datalist using image name from database使用数据库中的图像名称在 datalist 上插入图像
【发布时间】:2017-07-22 03:44:09
【问题描述】:

我在尝试从数据库中显示我的 DataList 中的图像并有权访问我从中提取图像的数据库时遇到问题。但是当我运行WebForm 时,图像没有出现,我的代码有什么问题?

<asp:DataList ID="DataList1" runat="server" DataKeyField="dishID" DataSourceID="SqlDataSource1" BorderStyle="Solid" GridLines="Both" RepeatColumns="4" RepeatDirection="Horizontal" Width="1259px" >
    <ItemTemplate>
        <table class="auto-style1">
            <tr><td>
                <asp:Image ID="Image1" runat="server" ImageUrl='<%# "FoodPictures/" + Eval("dishImage") %>' />

这就是我从数据库中检索的方式:

 protected void Page_Load(object sender, EventArgs e)
{
    SqlConnection conn = new SqlConnection(_connStr);
    conn.Open();
    SqlCommand cmd = conn.CreateCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "select * from Dish";
    DataTable dt = new DataTable();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(dt);

    conn.Close();

    DataList1.DataSource = dt;
    DataList1.DataBind();
    conn.Close();

}

【问题讨论】:

  • 图片在数据库中存储了什么?图片路径还是图片数据?你是如何从数据库中检索的?可以分享一下后端代码吗?

标签: c# asp.net image webforms datalist


【解决方案1】:

我认为您的页面没有在正确的路径上获取图像.... 使用

  <asp:Image ID="Image1" runat="server" ImageUrl='<%# "../FoodPictures/" + Eval("dishImage") %>' />

或者

<asp:Image ID="Image1" runat="server" ImageUrl='<%# "~/FoodPictures/" + Eval("dishImage") %>' />

试试这个..

【讨论】:

    【解决方案2】:

    假设dishImage 是存储在数据库中的类似imagename.jpg 的名称,然后尝试Convert.ToString(Eval("dishImage")) 之类的:

    <asp:Image ID="Image1" ImageUrl='<% # "~/FoodPictures/" + Convert.ToString(Eval("dishImage")) %>' runat="server" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 2017-10-07
      • 1970-01-01
      • 2013-11-09
      • 1970-01-01
      相关资源
      最近更新 更多