15 September, 2009
0 Comments
0 categories
If you want to export images from a SQL Server database you could use the following code:
public void ExportImagesFromDatabase() { var exportPath = @"C:\Temp"; if (!Directory.Exists(exportPath)) { Directory.CreateDirectory(exportPath); } var imagesTable = GetImagesFromDatabase("select [ImageColumn] from [ImageTable]"); var rowCounter = 0; foreach (DataRow row in imagesTable.Rows) { if (row.ItemArray.Length > 0) { if (row[0] != null) { var imageBytes = (byte[])row["Image"]; if (imageBytes.Length > 0) { using (var convertedImage = new Bitmap(new MemoryStream(imageBytes))) { var fileName = Path.Combine(exportPath, string.Format("ExportImage_{0}.bmp", rowCounter.ToString().PadLeft(5, '0'))); if (File.Exists(fileName)) { File.Delete(fileName); } convertedImage.Save(fileName); } } } } } } public DataTable GetImagesFromDatabase(string query) { if (string.IsNullOrEmpty(query)) { throw new NullReferenceException("Parameter query can't be null or empty"); } var result = new DataTable(); using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Runner"].ConnectionString)) { using (var command = new SqlCommand(query, connection)) { connection.Open(); command.CommandTimeout = 0; command.CommandType = CommandType.Text; using (var adapter = new SqlDataAdapter(command)) { var recordCount = adapter.Fill(result); } } } return result; }
Tags: C#SQL Server