Asp.net 我已经做了一个从数据库检索图像的代码?它可以工作,但它显示,Image:System.Byte[]Label

Asp.net 我已经做了一个从数据库检索图像的代码?它可以工作,但它显示,Image:System.Byte[]Label,asp.net,sql,c#-4.0,Asp.net,Sql,C# 4.0,伙计们现在代码已经准备好了…(执行时没有错误)但是当我点击按钮时。。。它将显示类似于图像的标签:System.Byte[]。。。。在列表视图中 代码中有问题吗 这个代码错了吗? 谁能帮帮我?要解决这个问题,您描述的行为听起来像是在对图像对象调用.ToString()。图像不是字符串,因此.ToString()方法将执行将类名和类似System.Byte[]的属性写入标签的默认行为。Darren在评论中的链接显示了如何将字节数组写入响应流,不过如果您真的想将其保留为字符串且图像大小较小,也可以尝试

伙计们现在代码已经准备好了…(执行时没有错误)但是当我点击按钮时。。。它将显示类似于图像的标签:System.Byte[]。。。。在列表视图中 代码中有问题吗

这个代码错了吗?
谁能帮帮我?要解决这个问题,您描述的行为听起来像是在对图像对象调用.ToString()。图像不是字符串,因此.ToString()方法将执行将类名和类似System.Byte[]的属性写入标签的默认行为。Darren在评论中的链接显示了如何将字节数组写入响应流,不过如果您真的想将其保留为字符串且图像大小较小,也可以尝试使用data:uri格式作为图像标记:


我会使用定制的httphandler来写入流,因为并非所有浏览器都支持数据uri格式,并且有大小限制。但是,如果您只是为现代浏览器提供小图像,它可能适合您。

您需要添加一个通用处理程序来呈现实际图像-请参阅此答案(重复)
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=PROMOD-PC;Initial Catalog=travel_Directions;Integrated Security=True";


DataTable dt = new DataTable();

String selQuery = "SELECT Image FROM MapDataImage WHERE Source='" + TextBox1.Text + "';";

SqlCommand SelCmmnd = new SqlCommand(selQuery);
SqlDataAdapter sDatAdp = new SqlDataAdapter();
SelCmmnd.CommandType = CommandType.Text;
SelCmmnd.Connection = con;

con.Open();

sDatAdp.SelectCommand = SelCmmnd;

sDatAdp.Fill(dt);
ListView1.DataSource = dt;
ListView1.DataBind();

con.Close();
sDatAdp.Dispose();
con.Dispose();
dt.Dispose();