本文所用的例子基於微軟企業庫
插入資料庫時,用的是 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 給刪除,後面更新還是成功。
可能原因:原先的圖片的太大了,後來不同類型就更新不上。