通过数据库提取图像

本文关键字:图像 提取 数据库 | 更新日期: 2023-09-27 18:08:16

我正在从数据库中提取图像(SQL Server 2008)我正在使用WPF应用程序,使用Grid_Loaded事件来加载页面。我发现的例子主要是使用组合框来选择图像的ID并显示它。但是,我不想使用组合框。

我有几行代码,我已经工作,并在互联网上发现,将不胜感激,如果有人帮助我!

private void LoadImages()
    {
        try
        {
            string connstr = @"Server=CTGPJLPC21'SQLEXPRESS;Database=testing;Trusted_Connection=True;";
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                conn.Open();
                using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM test_table", conn))
                {
                    dset = new DataSet();
                    adapter.Fill(dset);
                }
                DataTable dt = dset.Tables[0];
                foreach (DataRow row in dt.Rows)
                {
                    if (dset.Tables[0].Rows.Count == 1)
                    {
                        byte[] data = (byte[])dset.Tables[0].Rows[0][0];
                        MemoryStream strm = new MemoryStream();
                        strm.Write(data, 0, data.Length);
                        strm.Position = 0;
                        System.Drawing.Image img = System.Drawing.Image.FromStream(strm);
                        BitmapImage bi = new BitmapImage();
                        bi.BeginInit();
                        MemoryStream ms = new MemoryStream();
                        img.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
                        ms.Seek(0, SeekOrigin.Begin);
                        bi.StreamSource = ms;
                        bi.EndInit();
                        myImg.Source = bi;
                    }
                }
                }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

通过数据库提取图像

long bufferSize = dataReader.IsDBNull(1) ? 0 : dataReader.GetInt64(1);
if (bufferSize > 0)
{
    j.PictureContent = new byte[bufferSize];
    bufferSize = dataReader.GetBytes(1, 0, j.PictureContent, 0, Convert.ToInt32(bufferSize));
}



其中j是一个类实例,j. picturecontent是一个字节[]。