您的位置:首页 > 数据库

wpf图片的预览,以流的方式将图片保存在数据库中,再以流的方式从数据库中读取显示图片

2013-05-12 13:50 489 查看
WPF实现的图片保存显示有些不一样,有必要自我总结一下。。。
【注:数据库中保存图片的数据类型最好是varbiary(max)】
1.图片预览功能:

显示代码

private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)         {             if ((e.OriginalSource as DataGrid).SelectedItem != null)             {                 int job_id = Convert.ToInt32(((e.OriginalSource as DataGrid).SelectedItem as DataRowView)[0].ToString());                 DataSet ds = DBHelper.DBSQLHelper.Search("select * from myjobs where job_id=" + job_id, null, CommandType.Text);                 this.tb_jobdesc.Text = ds.Tables[0].Rows[0]["job_desc"].ToString();                 byte[] img = (byte[])ds.Tables[0].Rows[0]["pic"];    //从数据库中获取图片数据转换为字节数组(注意:不用用这种方式转换为字节数组,这种转换有问题,我之前一直出不来效果 byte[] img = System.Text.ASCIIEncoding.ASCII.GetBytes(ds.Tables[0].Rows[0]["pic"].ToString()); 现在修改了,就能出来效果了,这个问题还挺让人纠结的呢,所以大家要注意哦!)                 ShowSelectedIMG(img);                //以流的方式显示图片的方法             }         }

private void ShowSelectedIMG(byte[] img)         {             System.IO.MemoryStream ms = new System.IO.MemoryStream(img);//img是从数据库中读取出来的字节数组

ms.Seek(0, System.IO.SeekOrigin.Begin);                          BitmapImage newBitmapImage = new BitmapImage();

newBitmapImage.BeginInit();

newBitmapImage.StreamSource = ms;

newBitmapImage.EndInit();

image1.Source = newBitmapImage;         }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐