//This code developed by Ramy Mahrous
//ramyamahrous@hotmail.com
//Its contents is provided "as is", without warranty.
/// <summary>
/// Inserts new image to database
/// </summary>
/// <param name="imageName">Image name</param>
/// <param name="imagePath">Image file path</param>
public void InsertImage(string imageName, string imagePath)
{
System.IO.FileStream fs = new System.IO.FileStream(imagePath, System.IO.FileMode.Open);
byte[] imageAsBytes = new byte[fs.Length];
fs.Read(imageAsBytes, 0, imageAsBytes.Length);
fs.Close();
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=DummyDatabase;Integrated Security=True");// your connection string I place mine for illustration.. DON'T HARDLY WRITE IT, pass it as argument or add it in application configuration
string insertString = "[dbo].[InsertNewImage]";
SqlCommand insertCommand = new SqlCommand(insertString, conn);
insertCommand.CommandType = CommandType.StoredProcedure;
insertCommand.Parameters.AddWithValue("@Caption", imageName);
insertCommand.Parameters.AddWithValue("@Content", imageAsBytes);
conn.Open();
insertCommand.ExecuteNonQuery();
conn.Close();
}
/// <summary>
/// Gets image by ID
/// </summary>
/// <param name="imageID">Image ID</param>
/// <returns>Image null if not exists</returns>
public Image GetImageById(int imageID)
{
Image result = null;
SqlDataReader imageReader;
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=DummyDatabase;Integrated Security=True");// your connection string I place mine for illustration.. DON'T HARDLY WRITE IT, pass it as argument or add it in application configuration
string selectString = "[dbo].[GetImageByID]";
SqlCommand selectCommand = new SqlCommand(selectString, conn);
selectCommand.CommandType = CommandType.StoredProcedure;
selectCommand.Parameters.AddWithValue("@ID", imageID.ToString());
conn.Open();
imageReader = selectCommand.ExecuteReader(CommandBehavior.CloseConnection);
while(imageReader.Read())
{
result = Image.FromStream(new MemoryStream((byte[])imageReader.GetValue(1)));
}
return result;
}