Проблема с добавлением изображения в виде сетки ASP. NET из базы данных SQL - PullRequest
0 голосов
/ 06 мая 2020

Я создал сетку, содержащую столбец для изображений, после того как я напишу весь необходимый код, изображение все еще не отображается. Можете ли вы посмотреть на код и увидеть, что я делаю неправильно? Это мой ASP. NET вид сетки:

<asp:GridView ID="gvProduct" runat="server" AutoGenerateColumns="False" Height="229px" Width="404px">
        <Columns>
            <asp:BoundField DataField="Name" HeaderText="Name" />
            <asp:BoundField DataField="Description" HeaderText="Description" />
            <asp:TemplateField HeaderText="Image">
                <ItemTemplate>
                    <img id="img1" src='Handler1.ashx.cs?ProductID=<%# Eval("ProductID").ToString() %>' height="70" width="70"/>
                </ItemTemplate>
                </asp:TemplateField>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:LinkButton ID="lnkView" runat="server" CommandArgument='<%# Eval("ProductID") %>' OnClick="lnk_OnClick">View</asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

Это моя кнопка, которая при нажатии должна отображать изображения в виде сетки ASP. NET

protected void btnSave_Click(object sender, EventArgs e)
    {

        if (sqlCon.State == ConnectionState.Closed)
            sqlCon.Open();
        SqlCommand sqlCmd = new SqlCommand("ProductCreateOrUpdate", sqlCon);
        sqlCmd.CommandType = CommandType.StoredProcedure;
        sqlCmd.Parameters.AddWithValue("@ProductID", (hfProductID.Value == "" ? 0 : Convert.ToInt32(hfProductID.Value)));
        sqlCmd.Parameters.AddWithValue("@Name", txtName.Text.Trim());
        sqlCmd.Parameters.AddWithValue("@Image", FileUpload2.FileBytes);
        sqlCmd.Parameters.AddWithValue("@Description", txtDescription.Text.Trim());
        sqlCmd.ExecuteNonQuery();
        sqlCon.Close();
        string productID = hfProductID.Value;
        Clear();
        if (productID == "")
            lblSuccessMessage.Text = "Saved Successfully";
        else
            lblSuccessMessage.Text = "Updated Successfully";
        FillGridView();
    }

А это вообще Handler.ashx

public class Handler1 : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        string Constr = System.Configuration.ConfigurationManager.ConnectionStrings[@"connection String"].ToString();
        string pici = context.Request.QueryString["ProductID"];
        using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(Constr))
        {
            using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("SELECT Image FROM Product WHERE ProductID=@ProductID", conn))
            {
                cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("ProductID", pici));
                conn.Open();
                using (System.Data.SqlClient.SqlDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection))
                {
                    reader.Read();
                    context.Response.BinaryWrite((Byte[])reader[reader.GetOrdinal("Image")]);
                    reader.Close();
                }

            }
        }
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...