Я пытаюсь извлечь двоичное изображение из базы данных и отобразить его в элементе управления GridView.Таблица с именем [student] в моем SQL Server может отображаться внутри GridView, за исключением столбца [Image].Вот мой код на c #, пытающийся извлечь двоичное изображение из базы данных:
protected void Page_Load(object sender, EventArgs e)
{
string constr = ConfigurationManager.ConnectionStrings["SAOSConnectionString"].ConnectionString;
using (SqlConnection conn = new SqlConnection(constr))
{
using (SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM student", conn))
{
DataTable dt = new DataTable();
sda.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
}
protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataRowView dr = (DataRowView)e.Row.DataItem;
string imageUrl = "data:image/jpg;base64," + Convert.ToBase64String((byte[])dr["Image"]);
(e.Row.FindControl("Image1") as Image).ImageUrl = imageUrl;
}
}
Из приведенного выше кода я получил сообщение об ошибке из этой строки:введите 'System.Byte []'.
string imageUrl = "data:image/jpg;base64," + Convert.ToBase64String((byte[])dr["Image"]);