本文所用的例子基于微软企业库
插入数据库时,用的是 db.AddInParameter(dbCommand, "aimg", DbType.Binary, model.AImg);
第一次更新用的也是 db.AddInParameter(dbCommand, "aimg", DbType.Binary, model.AImg); 结果失败
每二次更新用的是 自己写的方法 :
/// <summary>
///存储Blob时,把内容存入OracleParameter,如果内容为空,则使用Varchar2。默认方向Input.
/// </summary>
/// <param name="orakey">字段</param>
/// <param name="value">值</param>
/// <returns></returns>
public static IDataParameter CreateBlobParameter(string orakey, byte[] value)
{
OracleParameter param = null;
param = new OracleParameter(orakey, OracleType.Blob);
if (value != null && value.Length > 0)
{
param.Value = value;
}
else
{
param.Value = DBNull.Value;
}
param.Direction = ParameterDirection.Input;
return param;
}
结果还是失败了。
后来心一横,更新时再加一个语句 (语句a) update myimagetab set aimg=EMPTY_BLOB() where id=1 ,然后执法更新语句,结果成功。
之后可能糊涂了吧,我把这语句a 给删除,后面更新还是成功。
可能原因:原先的图片的太大了,后来不同类型就更新不上。