您的位置:首页 > 数据库 > Oracle

IBatis存取图片在Oracle Blob大字段中Asp.Net

2009-11-12 15:35 666 查看
cs 代码

/// <summary>
/// 添加一个图片
/// </summary>
public void AddImageToOracle()
{
AdvertisementManager am = new AdvertisementManager();
Advertisement a = new Advertisement();
string file_name = "C:\\szs.jpg";
FileStream fs = new FileStream(file_name, FileMode.OpenOrCreate, FileAccess.Read);
byte[] MyData = new byte[fs.Length];
fs.Read(MyData, 0, System.Convert.ToInt32(fs.Length));
fs.Close();
a.AdImage = MyData;
am.AddAdvertisement(a);

}
/// <summary>
/// 读取一个图片
/// </summary>
public void ShowImageFromOracle()
{
AdvertisementManager am = new AdvertisementManager();
Advertisement a = new Advertisement();
a = am.GetAdvertisementById(41);
byte[] bytes = a.AdImage;
Response.AppendHeader("Content-Length", bytes.Length.ToString());
Response.BinaryWrite(bytes);
}


配置


普通的配置就可以


<insert id="Advertisement.Insert" parameterClass="Advertisement">
INSERT INTO AD_ADVERTISEMENT (ID,AD_NAME,AD_TYPE,AD_STATE,AD_WIDTH,AD_HEIGHT,AD_IMAGE,AD_CODE)
VALUES (#Id#,#AdName#,#AdType#,#AdState#,#AdWidth#,#AdHeight#,#AdImage#,#AdCode#)
<selectKey resultClass="int" type="pre" property="Id" >
SELECT seq_AD_ADVERTISEMENT.NEXTVAL AS VALUE FROM DUAL
</selectKey>
</insert>



Po 对于大字段的对应属性,用byte[]就可以了


/// <summary>
/// 图片
/// </summary>
private byte[] adimage;
/// <summary>
/// 图片
/// </summary>
public byte[] AdImage
{
get{return adimage;}
set{adimage = value;}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: