Windows Mobile程序中读取数据库中的二进制图片总结
2010-06-22 03:13:00 来源:WEB开发网Visual Studio 2008中也就是.Net 3.5框架
在Windows窗体程序中,Image类有两个方法也就是从数据流FromStream和文件FromFile生成图片,大概过程是从数据库中读出二进制数据,存储在一个字节数组里面,然后通过以上两种方法读出,具体方法请看
1,用FromFile
/// < summary>
/// 将数据库中的二进制显示为图片 用pictureBox来显示数据库中二进制图片有两种方法,方件流,二进制流
/// < /summary>
/// < param name="sqlStr">查询语句
/// < returns>
public Image BytesToImage(string sqlStr)
{
SqlConnection conn = GetConnection();
conn.Open();
SqlCommand sqlCmd = new SqlCommand(sqlStr, conn);
SqlDataReader sqlDr = sqlCmd.ExecuteReader();
sqlDr.Read();
FileInfo fi = new FileInfo("temp");
FileStream fs = fi.Open(FileMode.Create);
byte[] myData = (byte[])sqlDr["DrugImage"];
foreach (byte a in myData)
{
fs.WriteByte(a);
}
fs.Close();
sqlDr.Close();
sqlCmd.Dispose();
sqlDr.Dispose();
conn.Close();
return Image.FromFile("temp");
}
2,用FromStream
/// < summary>
/// 将数据库中的二进制显示为图片 用pictureBox来显示数据库中二进制图片有两种方法,方件流,二进制流
/// < /summary>
/// < param name="sqlStr">查询语句
/// < returns>
public Image BytesToImage(string sqlStr)
{
SqlConnection conn = GetConnection();
conn.Open();
SqlCommand sqlCmd = new SqlCommand(sqlStr, conn);
SqlDataReader sqlDr = sqlCmd.ExecuteReader();
sqlDr.Read();
MemoryStream ms = new MemoryStream((byte[])sqlDr["DrugImage"]);
Image myImage = Image.FromStream(ms,true);
sqlDr.Close();
赞助商链接