【发布时间】:2016-12-24 11:07:26
【问题描述】:
我正在尝试使用 jQuery 和 Web 服务将 SQL 表中的 varbinary 图像显示为 html 表数据。请帮助我如何转换 int 以及如何显示它。
我的代码是这样的:
网络服务:
[WebMethod]
public a[] Bindpics()
{
DataTable dt = ga.retrievedata("select Picture from T_Sam");
List<a> details = new List<a>();
foreach (DataRow dtrow in dt.Rows)
{
a m = new a();
m.Pic = (byte[])dtrow["Picture"];
details.Add(m);
}
return details.ToArray();
}
public class a
{
public byte[] Pic { get; set; }
}
jQuery:
success: function (data) {
for (var i = 0; i < data.d.length; i++) {
$("#tbDetails").append("<tr><td>"
+ "<img src=" + "'" + data.d[i].Pic + "'" + " />" + "</td></tr>");
}
我收到一个错误
无法将类型 \u0027System.DBNull\u0027 的对象转换为类型 \u0027System.Byte[]\u0027
它不显示图像。
请帮我转换一下。
【问题讨论】:
-
在将其分配给属性之前检查 dbnull。同样在 jquery 中,除非图片是 url,否则您需要使用 Data URI scheme
-
它似乎不属于 ASP.NET MVC 项目,因为您的代码中有 WebMethod 属性。你确定这是来自 ASP.NET MVC 项目吗?
-
@Nkosi ... 是的,您是正确的数据为空,我将数据添加到所有行,并且我还删除了数据 URI 方案...但是现在服务正在执行而没有错误,但图像没有显示。 ....
-
@Nkosi 我终于得到了解决方案,我从网络服务中转换了图像......
标签: c# asp.net web-services model-view-controller