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=MyServer\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
            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(); 
            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;

        }
    }
}