我已经制作了一个从数据库中检索图像的代码?它有效,但它显示,图像:System.Byte []标签

时间:2013-07-04 13:29:32

标签: asp.net sql c#-4.0

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();
伙伴现在代码准备就绪......(执行没有错误)但是当我点击按钮时...它会在列表视图中显示像Image:System.Byte [] ....这样的标签 代码中有问题吗?

这段代码错了吗? 有人请帮帮我?弄清楚............

1 个答案:

答案 0 :(得分:0)

您描述的行为听起来就像是在Image对象上调用.ToString()。图像不是字符串,因此.ToString()方法将执行将类名称和System.Byte []等属性写入标签的默认行为。 Darren在评论中的链接显示了如何将一个字节数组写入响应流,但如果你真的想要保持字符串并且图像大小很小,你也可以尝试使用数据:图像标签的uri格式: / p>

stackoverflow.com/questions/6826390/...

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