using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Configuration;
namespace WpfSqlServerImages1
{
/// <summary>
/// Interaction logic for Window2.xaml
/// </summary>
public partial class Window2 : Window
{
public Window2()
{
// open a database connection
string connstr = @"Data Source=A69380ISB\SQLEXPRESS;Initial Catalog=TestImage;Integrated Security=True";
SqlConnection sqlCon = new SqlConnection(connstr);
// open the connection
sqlCon.Open();
// set up a data adapter object
// Create a SqlDataAdapter
SqlDataAdapter sqa = new SqlDataAdapter("select name from picture", sqlCon);
// load a data set
Dataset ds = new DataSet();
sqa.Fill(ds);
sqlCon.Close();
foreach (DataRow dataRow in ds.Tables[0].Rows)
{
ListBoxItem lbItem = new ListBoxItem();
lbItem.Content = dataRow[0].ToString();
lbpics.Items.Add(lbItem);
}
InitializeComponent();
}
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListBoxItem lb = (lbpics.SelectedItem as ListBoxItem);
string connstr = @"Data Source=MyServer\SQLEXPRESS;Initial Catalog=TestImage;Integrated Security=True";
SqlConnection sqlCon = new SqlConnection(connstr);
sqlCon.Open();
Dataset ds = new DataSet();
SqlDataAdapter sqa = new SqlDataAdapter("Select pic from picture where name='" + lb.Content.ToString() + "'", sqlCon);
sqa.Fill(ds);
sqlCon.Close();
byte[] data = (byte[])ds.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();
imagebox.Source = bi;
}
}
}