如果把图片作为Image类型存入数据库,当需要从数据库里调出显示的时候并不需要创建任何临时文件,可以利用pictureBox1.Image = System.Drawing.Image.FromStream(ms);来实现。其中ms为MemoryStream对象。
具体代码:
/// <summary>
/// 通过ID得到图片,直接显示在图片框里
/// </summary>
/// <returns></returns>
public static MemoryStream ID2FileStream(int id)
{
MemoryStream rtn = null;
try
{
string strSQL = "select filedata from t_filebase where id = " + id.ToString();
SqlConnection db = new SqlConnection(strConn);
db.Open();
SqlCommand cmd = new SqlCommand(strSQL, db);
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess);
if (!reader.Read())
{
rtn = null;
}
else
{
Byte[] byteBLOBData = new Byte[0];
byteBLOBData = (Byte[])(reader["FileData"]);
MemoryStream stmBLOBData = new MemoryStream(byteBLOBData);
rtn = stmBLOBData;
}
reader.Close();
cmd.Dispose();
db.Close();
db.Dispose();
return rtn;
}
catch
{
return null;
}
}