How To: Store And Retrieve Images In A Database As A Byte Array.
Feb 28, 2008
I€™ve inherited a project from one of the guys on our team who will be out sick for a while. He developed two for marshaling data between System.Drawing.Image and System.Byte(). He€™s storing the byte array data in a database image field.
I€™ve retrieved the byte array data from his database image fields and have successfully converted them to images using his ConvertByteArrayToImage method below. I have also converted and image to a byte array with his ConvertImageToByteArray method below and succfully stored the data in a database image field. However, when I retrieve the byte array data that I stored in the database the last line in his ConvertByteArrayToImage method throws an exception (Parameter is not valid). I€™ve not been able to find a working copy of his code that€™s storing the byte array data. Does anyone see anything I€™m overlooking?
Imports System.Drawing
Imports System.IO
Public Sub InsertImage(ByVal pFilename As String)
Try
Dim lImage As Image
Dim lBA() As Byte
Dim lSQL As String
Dim lQuery As Alcon.SQLServer.Database.clsQuery
Dim lParameters As New Alcon.SQLServer.Database.clsParameters
lImage = Image.FromFile(pFilename)
ConvertImageToByteArray(lImage, lBA)
' Initialization
lQuery = New Alcon.SQLServer.Database.clsQuery(mConnection)
lSQL = ""
lSQL += "INSERT INTO [TBL_PCL_LENS_DATA]("
lSQL += "[SerialNumber], "
lSQL += "[ProcessedDate], "
lSQL += "[CartonLabelImage]) "
lSQL += "VALUES ("
lSQL += "@SerialNumber, "
lSQL += "@ProcessedDate, "
lSQL += "@CartonLabelImage "
lSQL += ")"
lParameters.Add("@SerialNumber", SqlDbType.VarChar, ParameterDirection.Input, mSerialNumber)
lParameters.Add("@ProcessedDate", SqlDbType.DateTime, ParameterDirection.Input, Now)
lParameters.Add("@CartonLabelImage", SqlDbType.Image, ParameterDirection.Input, lBA)
' Execute query
lQuery.Execute(lSQL, lParameters)
Catch ex As Exception
Throw
End Try
End Sub
ConvertByteArrayToImage(ByVal pBA() As Byte, ByRef pImage As Image)
Try
' Declaration
Dim lMS As MemoryStream
' Initialization
lMS = New MemoryStream(pBA, 0, pBA.Length)
lMS.Write(pBA, 0, pBA.Length)
lMS.Position = 0
' Create image
pImage = Image.FromStream(lMS, True)
Catch ex As Exception
Throw
End Try
End Sub
ConvertImageToByteArray(ByVal pImage As Image, ByRef pBA() As Byte)
Try
' Declaration
Dim lBM As Bitmap
Dim lBR As BinaryReader
Dim lMS As New MemoryStream
' Initialization
lBM = New Bitmap(pImage)
lBM.Save(lMS, Imaging.ImageFormat.Png)
lBR = New BinaryReader(lMS)
' Create byte array
pBA = lBR.ReadBytes(lMS.Length)
Catch ex As Exception
Throw
End Try
End Sub
View 1 Replies
ADVERTISEMENT
Mar 23, 2008
hi,
i would like to store images in my database and retirve them aswell. i have looked at examples on the net but i am finding it hard to follow and undertsand them, can anyone please give me adivse on how i can do this. i have alrady created my table in my database which has 4 fields pictureID, pictureContent, pictureType and pictureSize but i dont know where to go on from here. i want to do it in vb aswell.
please any help and advise would be much appreciated as i am stuck,
thank you
View 20 Replies
View Related
Mar 26, 2008
hi
i am getting an error with my code, it says 'value of type byte canot be converted to 1 dimensional array of byte' do you know why and how i can correct this error, the follwoing is my code.
can anyone help me correct the error and let me know ow to solve it
thanks for any help givenPublic Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequestDim myConnection As New Data.SqlClient.SqlConnection("ConnectionString")
myConnection.Open()
Dim sql As String = "Select Image_Content from ImageGallery where Img_Id=@ImageId"Dim cmd As New Data.SqlClient.SqlCommand(sql, myConnection)cmd.Parameters.Add("@imgID", Data.SqlDbType.Int).Value = context.Request.QueryString("id")
cmd.Prepare()Dim dr As Data.SqlClient.SqlDataReader = cmd.ExecuteReader()
dr.Read()
context.Response.ContentType = dr("imgType").ToString()context.Response.BinaryWrite(CByte(dr("imgData"))) ----- this is the line with the error
End Sub
View 1 Replies
View Related
Jan 8, 2006
Hello, I am using .net 1.1 and sql server 2000.
I want to store a byte array, but it seems that only a string is stored there.
Code:
SHA512 sha = new SHA512Managed();
byte[] ReturnedPasswordByte = sha.ComputeHash(ToCryptByte);
MyGenericCommand.Parameters.Add("@Password", ReturnedPasswordByte);
MyConnection.Open();
MyGenericCommand.ExecuteNonQuery();
MyConnection.Close();
If I select the record later, all I get is "System.Byte[]" (as string)
View 1 Replies
View Related
Mar 26, 2008
i am using sql server,asp.net and C# language.I am able to upload data into the database but couldnt retrieve it from the database.i am using the following code to upload image into the database.kindly help.
SqlConnection connection = null; try { FileUpload img = (FileUpload)imgUpload; Byte[] imgByte = null; if (img.HasFile && img.PostedFile != null) { HttpPostedFile File = imgUpload.PostedFile; imgByte = new Byte[File.ContentLength]; File.InputStream.Read(imgByte, 0, File.ContentLength); } string conn = connection establishing string; connection = new SqlConnection(conn); connection.Open(); string sql = "insert into imagetable values(@enm, @eimg) SELECT @@IDENTITY"; SqlCommand cmd = new SqlCommand(sql, connection); cmd.Parameters.AddWithValue("@enm", txtEName.Text.Trim()); cmd.Parameters.AddWithValue("@eimg", imgByte); int id = Convert.ToInt32(cmd.ExecuteScalar()); lblResult.Text = String.Format("Employee ID is {0}", id); } catch { lblResult.Text = "There was an error"; } finally { connection.Close(); }
View 9 Replies
View Related
Feb 26, 2006
I want to store IMAGE into Database So can any one tell me what's the command for that ?
like my image name is hello.jsp
command means the query like ( Select * from tableNAme )
Like thins pl help me & tell me What datatype should i use for that ?
Thaks for your help in advance
Have a Good Day
Harsh
View 1 Replies
View Related
May 8, 2006
hi everybody,can anybody help me out by telling me how could I store images in a database, and how to insert new images at run time to a database and thanks
View 1 Replies
View Related
Jan 14, 2007
Hello All,
My question is how to store images in a database table (in SQL Server), and how to retrieve them?...
Thanks,
View 2 Replies
View Related
Jun 7, 2006
Images, PDFs, word documents, etc..., will it affect the performance of my sql if I stored them in it as blob objects? Or it's better to use the filesystem instead and just store file paths in my sql?
thanks in advance
View 1 Replies
View Related
Sep 24, 2001
Can you store images in a database or in a table, or do you have to only store the image path/name in the database while the image is in another folder? IF anyone knows, please share with me. Thanks.
View 2 Replies
View Related
Jun 19, 2007
I have recently designed and built my first database using SQL server 2005 express. I have included an image (BLOB) column in one of the database tables. This is a bad idea according to some experts, and some say it is OK!
I am currently carrying out a trial with just 3 pictures via Visual Basic 2005 express forms, and there is no problem so far as the images are displayed for each record. But I anticipate between 300 - 1000 images for the table, and this could pose real problems for SQL server 2005 express and Visual Basic 2005 express, I guess.
I have just been reading that the cost of storing large images in the database is too high! I have also read it's better to store images (BLOB) into the file system because it is cheaper to store them no matter how many there are.
But the question is how I can reference an image in this path: C:PictureProductGrocery 0052745.jpg in the database table, so that when I select a record Visual Basic 2005 forms the image is displayed accordingly, similar as when stored directly in the database table? Your help very much appreciated.
View 3 Replies
View Related
May 6, 2008
hi can anyone tell how to use the image field and add an image in a database. i'm using visual studio web developer express edition 2008 and i want people who visit my website to be able to see the table and the images associated with some of the rows in the table
Thanx Taryn
View 2 Replies
View Related
Oct 11, 2007
hello all, I have a multi line textbox and want to store the content of the textbox to a database. I want to preserve the linefeeds so that I display the message as it is typed by retrieving it. Can anyone please explain how to store the linefeeds to the database. Once i store the linefeeds to the database, I can restore them using the Replace("","<br/>) method. But I can't figure out how to store the 's in the database in the first place. Thanx in advance
View 2 Replies
View Related
Apr 9, 2008
Hi I'am practically new in C#, so I want to ask you guys some question.Let say I have this query:"Select EmployeeID, EmpName from PI_Employee"How can I retrieve the result from EmployeeID column and EmpName column and put it into collections of array, so I can call the array and use it again in another function. Can I possibly do that in C# ? if so, how ? please help me guys, I'm on the edge of nervous wreck in here so I could use a little help, any kinds of help. Thanks. Best Regards.
View 2 Replies
View Related
Aug 1, 2006
Hi,
I want to get an image from a sql server database and display it with an asp:image control. I use C# in MS Visual Studio .Net 2005 and Sql server 2005.
All I've done is:
// and Page Display_image.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
try
{
SqlConnection Con = new SqlConnection(
"server=localhost;" +
"database=;" +
"uid=;" +
"password=;");
System.String SqlCmd = "SELECT img_data FROM Image WHERE business_id = 2";
System.Data.SqlClient.SqlCommand SqlCmdObj = new System.Data.SqlClient.SqlCommand(SqlCmd, Con);
Con.Open();
System.Data.SqlClient.SqlDataReader SqlReader = SqlCmdObj.ExecuteReader(CommandBehavior.CloseConnection);
SqlReader.Read();
System.Web.HttpContext.Current.Response.ContentType = "image/jpeg";
// I write this:
System.Web.HttpContext.Current.Response.BinaryWrite((byte[])SqlReader["img_data"]);
// Or this:
//System.Drawing.Image _image = System.Drawing.Image.FromStream(new System.IO.MemoryStream((byte[])SqlReader["img_data"]));
//System.Drawing.Image _newimage = _image.GetThumbnailImage(100, 100, null, new System.IntPtr());
//_newimage.Save(System.Web.HttpContext.Current.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
Con.Close();
}
catch (System.Exception Ex)
{
System.Web.HttpContext.Current.Trace.Write(Ex.Message.ToString());
}
}
Both work the same way. I mean the image is displayed well but when I view code of the web page I see this:
....
GIF89aåo÷óå݉97)HS¢Å’xL£0¬B´ç¬D(áâKܠô²â€“I€8`È®û l1ãÂ?#KžL(ˆ*X±â€°Î"«Mè±â€ Ÿ
....
TOO MUCH characters before the html tag. And any code of the master page used for this page does not work as well!
Can anyone help me with this? I've tried for 2 days but I still fail.
Thanks.
View 2 Replies
View Related
Jul 20, 2005
Dear all,Sometimes I happened the require that the number of input parametersof SP is not fixed, Can sql T-SQL handle the array (dynamic array)?Does anybody ever used an array name as the input parameter to callthe SP?thanks,Robert
View 3 Replies
View Related
Apr 10, 2007
Hi
I am having a object System.Array and i want to store in SQL database.The object will be array of byte, but in SQL server doesn't have anytype to store that. Can you please tell me what is the most appropriate data type in SQL that i should use? Do i need conversion to store and get data in SQL database.
Thanks a lot for your help. I reall do appreciate that.
Maverick
View 4 Replies
View Related
Oct 10, 2006
hi experts,
how can i store images in database? and how can i call them back?
please give me in detail.
thank you very much
View 3 Replies
View Related
Sep 13, 2006
How can you loop over a data reader and save the current row to a temp array of some sort and return this array back to the caller?
SqlDecimal total = 0;
SqlConnection conn = new SqlConnection("Context Connection=true");
SqlCommand cmd = new SqlCommand(@"SELECT column1, column2, column3
FROM table ", conn);
conn.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
if (rdr.GetSqlString(1) == "01")
{
// ADD the current record to a temp list
total = total + rdr.GetSqlDecimal(2);
}
}
SqlContext.Pipe.Send(total.ToString());
// RETURN the temp list
rdr.Close();
conn.Close();
View 4 Replies
View Related
Jun 18, 2007
If you serialize the image into a string ? If you want to save a byte array to a string, do you have to use a base64 encoded string ?
View 1 Replies
View Related
Aug 14, 2001
hi,
i would like to know how i can store and retrive images from SQL server.
I will be happy if i have been explained with some examples.
View 1 Replies
View Related
Mar 9, 2004
Hey guys,
Can someone guide me how to store images in SQL Server using ASP.net?
Thanks
Lawrence
View 4 Replies
View Related
Feb 25, 2005
Hi - I'm using Session variables to store information (sort of webshop).
The sessions are a mix of the usual straightforward strings, wich are no problem - but I also have a DataTable which I store in a session variable, and I also have an array, which I store in a session variable eg. session("day")(x) where x is the item in the array.
I want to give my users the ability to store the items they've selected in my database, but have no idea of what type of field I should use for the datatable and array session variable. Should I use a TEXT field, or is there another more appropriate one'?
I'm using SQL Server 2000.
Thanks for any help,
Mark
View 3 Replies
View Related
Jan 2, 2004
hi guys, are there any official or some sort of documents to talk about the advantages and disadvantages of storing image in the SQL's Image datatype field or storing the pointer to the image file? i have lots of static images (no more than 1MB each) that requires little updating and i need to retrieve them constantly. i am really struggled here on which method i should store the images: to store the images as Image datatype in SQL or save them as files and store the paths to the files. i would like to know, in my case, would there be any performance and efficient difference on using either method?
naturally, i'd think the 1st method seems like a better solution. it's easier to back up and it protects integrity. But at the same time, i am not sure if the constant inserting and retrieving of images will affect the performance? also, i want to share the images and may create a ticker thing (using JavaScript) to display the images on the web page randomly and it seems like the 2nd method is easier to program. if you were me, which method would you use and why? thanks!
View 1 Replies
View Related
Apr 25, 2006
I have a client who wants to be able to upload images to his website for his customers to access. It will probably max out at 100 images a month...so not a huge amount of data. I am using asp.net 2.0 and SQL Server 2005.
Does anyone have thoughts or opinions on why I should or should not take this approach?
View 3 Replies
View Related
May 24, 2006
How does one pass into a Stored Procedure an array of numbers to be used in an IN clause? If I pass "1,2" in a VARCHAR, the stored procedure sees only the first number (1 in this case).
I'm using VB and ADO.NET, but I don't know how to set up the stored procedure for an array. Is there a parsing function to do this?
CREATE PROCEDURE TestInClause( @TeamList VARCHAR)ASSELECT Name FROM Teams WHERE TeamID IN (@TeamList); /* sees only 1st number */GO
View 2 Replies
View Related
Jan 2, 2007
I have a web server running fine together with an sql 2005 db. I use asp as my web server programming language and want to be able to display images that are stored in the database.
My question of course is how do I put images, for example an image called "image1.gif" into the database?
After having stored the images in the db, I guess that the are displayed on my web pages the same way as all text information (by writing something like <%=rs("image_column")%> ).... Anyway first I need help with how to store imgs in the database...
View 6 Replies
View Related
Apr 21, 2013
What is the type of values I have to use to tell the database to store pics?
View 4 Replies
View Related
Jul 2, 2006
i am working on a uni project based on orkut and is having dfficulty in storing and retrieving images..
can anybody please guide me...
thanx
View 1 Replies
View Related
Apr 4, 2008
Hi, for my photo album database I'm trying to decide whether to store the actual photos as images in the db or whether to leave them in file directories with just the path & filename in the db. As a beginner in this field I don't know how either of these options compare (e.g. in terms of performance, complexity, flexibility and maintainablity) so any advice on the pros and cons of each would be appreciated.
View 5 Replies
View Related
Jul 17, 2007
Hi friends
plese help me for my little things.
I m student and develop a website. i want to know how images /pics and video and audio files are store in Sql server2005 database. and ya i want to store whole file not just its address.
i using asp page like uploadImage.aspx in that i put UploadFiles control now i m confuesd to storing Images so plese help me and give code or some good easy trick at my level
And once store image or video and audio file in sql database then after how i used in my asp.net page. which control i wish to used for this files so plese this also slove it. give also code or any easy trick for fullfil my task..
i hope u all help me
Thanx in advance to u all friends
View 1 Replies
View Related
Apr 11, 2008
Is possible to get the name of the store procedure that i'm executing ?
I need to get the name of the procedure inside the procedure being executed, to insert this value on a log file...
View 1 Replies
View Related
Jan 24, 2006
I'm trying to use a store procedure to add an item into the database and retrieve the id of such item within and output parameter but this is not happening.
The item is added into the db but the output param is not modified.
Here is the code:
SP
CREATE procedure dbo.AddItem(@Desc nvarchar(100),@intItemID int output)as insert into RR_Item ( desc ) values ( @Desc )
select @intItemID = SCOPE_IDENTITY()GO
I have tried in the last line of the SP
select @intItemID = SCOPE_IDENTITY()
select @intItemID = @@IDENTITY
select @intItemID = max(itemid) from RR_Item
but nothing seems to work.
I'm calling the store procedure as follows from asp.net:
Dim intItemID As New SqlParameter("@intItemID", SqlDbType.Int)
intItemID.Direction = ParameterDirection.Output
SqlHelper.ExecuteDataset(objConn.ConnectionString, "AddItem", desc, intItemID)
MsgBox(intItemID.Value.ToString)
Any help would be appreciated.
Thanks
View 1 Replies
View Related