G
Goldrush\(???\)
Joe Cool said:I am cross posting this request for help in both the C#,NET and the
SQLServer newsgroups in he hope that some reader of one these
newsgroups can offer some help.
I am well aware that the image datatype (as well as others) are being
phased out in some future version of SQL Server. For that reason, in
all of my personal C#.NET projects that store images use the
varbinary(max) datatype.
I am in the process of converting a VB.NET project that I use for
consulting work with a former (and hopefully soon to be repeat)
employer tp C#.NET. When originally designed, their software was based
on SQL7. Currently their software supports SQL2005. One key table in
their database is a table of images and (not sure if it still does)
but legacy databases utilize the image datatype to store images. With
SQL7 I used a SQL command line utility called TEXTCOPY to extract the
binary content of image columns to a JPG file.
This utility needs to be able to extract these images to external
files even for legacy databases that may still use the image datatype.
But I find that the technique I use to extract images from a
varbinary(max) column doesn't work for image datatypes. And I see that
SQL2005, while it still supports image datatype, the TEXTCOPY utility
is nowhere to be found.
Any ideas on how to extract image data types from a SQL2005 database
with C#.NET?
Try like this
using System.IO;
using System.Drawing;
...............................
private PictureBox myPictureBox1;
.................................
DBCon dbcon = new DBCon(); //defined by me
dbcon.Open(); //database open
string sSql = "SELECT [ImageCol] FROM [ImageDataBase] ";
DataSet ds = dbcon.GetDataSet(sSql); //Get DataSet
dbcon.Close(); //database close
if (ds != null && ds.Tables.Count>0 )
{
byte[] image = (byte[])ds.Tables[0].Rows[0]["ImageCol"];
MemoryStream ms = new MemoryStream(image, 0, image.Length);
Bitmap bitmap = new Bitmap(ms);
ms.Close();
ms.Dispose();
myPictureBox1.Picture = bitmap; //show bitmap
myPictureBox1.FitToPictureBox(); //fit image to control
}