Load image to database : Image Load Save : ADO.Net C# Examples


C# Examples » ADO.Net » Image Load Save »

 

Load image to database









    
/*
Quote  from


Beginning  C#  2005  Databases  From  Novice  to  Professional

#  Paperback:  528  pages
#  Publisher:  Apress  (December  18,  2006)
#  Language:  English
#  ISBN-10:  159059777X
#  ISBN-13:  978-1590597774
*/


using  System;
using  System.Data;
using  System.Data.SqlClient;
using  System.IO;

namespace  LoadImages
{
      class  LoadImages
      {
            string  imageFileLocation  =@"Images\";

            string  imageFilePrefix  =  "milk";
            int  numberImageFiles  =  8;
            string  imageFileType  =  ".gif";
            int  maxImageSize  =  10000;
            SqlConnection  conn  =  null;
            SqlCommand  cmd  =  null;

            static  void  Main()
            {
                  LoadImages  loader  =  new  LoadImages();

                  try
                  {
                        //  Open  connection
                        loader.OpenConnection();
                        //  Create  command
                        loader.CreateCommand();
                        //  Create  table
                        loader.CreateImageTable();
                        //  Prepare  insert
                        loader.PrepareInsertImages();
                        //  Insert  images
                        int  i;
                        for  (i  =  1;  i  <=  loader.numberImageFiles;  i++)      
                        {
                              loader.ExecuteInsertImages(i);
                        }
                  }
                  catch  (SqlException  ex)
                  {
                        Console.WriteLine(ex.ToString());
                  }
                  finally
                  {
                        loader.CloseConnection();
                  }
            }

            void  OpenConnection()
            {
                  //  Create  connection
                  conn  =  new  SqlConnection(@"server  =  .\sqlexpress;integrated  security  =  true;database  =  tempdb");
                  //  Open  connection
                  conn.Open();
            }

            void  CloseConnection()
            {
                  conn.Close();
                  Console.WriteLine("Connection  Closed.");  
            }

            void  CreateCommand()
            {
                  cmd  =  new  SqlCommand();
                  cmd.Connection  =  conn;
            }

            void  ExecuteCommand(string  cmdText)
            {
                  int  cmdResult;
                  cmd.CommandText  =  cmdText;
                  Console.WriteLine("Executing  command:");
                  Console.WriteLine(cmd.CommandText);
                  cmdResult  =  cmd.ExecuteNonQuery();
                  Console.WriteLine("ExecuteNonQuery  returns  {0}.",  cmdResult);  
            }

            void  CreateImageTable()
            {
                  ExecuteCommand(@"create  table  imagetable(
                              imagefile  nvarchar(20),
                              imagedata  varbinary(max))");
            }

            void  PrepareInsertImages()
            {
                  cmd.CommandText  =  @"insert  into  imagetable  values  (@imagefile,  @imagedata)";
                  cmd.Parameters.Add("@imagefile",  SqlDbType.NVarChar,  20);
                  cmd.Parameters.Add("@imagedata",  SqlDbType.Image,  1000000);

                  cmd.Prepare();
            }

            void  ExecuteInsertImages(int  imageFileNumber)
            {
                  string  imageFileName  =  null;
                  byte[]  imageImageData  =  null;

                  imageFileName  =imageFilePrefix  +  imageFileNumber.ToString()  +  imageFileType;  
                  imageImageData  =LoadImageFile(imageFileName,  imageFileLocation,  maxImageSize);

                  cmd.Parameters["@imagefile"].Value  =  imageFileName;
                  cmd.Parameters["@imagedata"].Value  =  imageImageData;

                  ExecuteCommand(cmd.CommandText);
            }

            byte[]  LoadImageFile(string  fileName,string  fileLocation,int  maxImageSize)
            {
                  byte[]  imagebytes  =  null;  
                  string  fullpath  =  fileLocation  +  fileName;
                  Console.WriteLine("Loading  File:");
                  Console.WriteLine(fullpath);
                  FileStream  fs  =  new  FileStream(fullpath,  FileMode.Open,  FileAccess.Read);
                  BinaryReader  br  =  new  BinaryReader(fs);
                  imagebytes  =  br.ReadBytes(maxImageSize);

                  Console.WriteLine("Imagebytes  has  length  {0}  bytes.",imagebytes.GetLength(0));

                  return  imagebytes;
            }
      }
}
    
   
  
   




HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo ADO.Net
» Image Load Save