dr是SqlDataReader
photo是数据库中的Image字段
如果某条记录的photo字段不为空,
则(byte[])dr["photo"]转换不会出错
可是如果photo字段为空,就会报“指定的转换无效。”的错误!指定的转换无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。
请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 指定的转换无效。源错误:
行 169: this.zipcode = dr["zipcode"].ToString();
行 170: this.phone = dr["phone"].ToString();
行 171: this.photo = (byte[])dr["photo"];
photo是数据库中的Image字段
如果某条记录的photo字段不为空,
则(byte[])dr["photo"]转换不会出错
可是如果photo字段为空,就会报“指定的转换无效。”的错误!指定的转换无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。
请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 指定的转换无效。源错误:
行 169: this.zipcode = dr["zipcode"].ToString();
行 170: this.phone = dr["phone"].ToString();
行 171: this.photo = (byte[])dr["photo"];
行 172: this.photo = (byte[])dr["photo"];依然出现上面的错误.... :(
this.photo = (byte[])dr["photo"];
}
DBNull.Value != null
{
DataRow dr = obj.getMember().Rows[0];
this.zipcode = dr["zipcode"].ToString();
this.phone = dr["phone"].ToString();
//...
}另我,我不知你这个this.Phone是什么?如是byte[]类型的,即可. byte[] buffer = (byte[])dr["Photo"];
Response.BinaryWrite(buffer);