Mega Code Archive

 
Categories / C# Tutorial / ADO Net
 

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;       }    } }