jeevacl
jeevacl

Reputation: 109

Error while trying to save an image into SQL Server

I have created code to upload an image into SQL Server.

Here is the code to convert the image into bytes:

//Use FileInfo object to get file size.
FileInfo fInfo = new FileInfo(p);         

//Open FileStream to read file
FileStream fStream = new FileStream(p, FileMode.Open, FileAccess.Read);
byte[] numBytes = new byte[fStream.Length];
fStream.Read(numBytes, 0, Convert.ToInt32(fStream.Length));

//Use BinaryReader to read file stream into byte array.

//BinaryReader br = new BinaryReader(fStream);

//When you use BinaryReader, you need to supply number of bytes to read from file.
//In this case we want to read entire file. So supplying total number of bytes.

// data = br.ReadBytes((int)numBytes);
return numBytes;

And here is the code to add the bytes to a SqlCommand parameter as values:

 objCmd.Parameters.Add("@bill_Image", SqlDbType.Binary).Value = imageData;
  objCmd.ExecuteNonQuery();

But I am getting error

String or binary data would be truncated. The statement has been terminated

How can I overcome this problem?

Upvotes: 5

Views: 413

Answers (2)

Viktor S.
Viktor S.

Reputation: 12815

Check definition of the bill_Image column in your database.

it should be something like

bill_Image varbinary(X)

Just increase X or put there MAX instead of a number (if you have more than 8 000 bytes image)

Info about binary/varbinary type here

Upvotes: 0

Claudio Redi
Claudio Redi

Reputation: 68400

Error is clearly indicating that you're trying to save more bytes than allowed by the field definition.

Not sure what sql type you're using for bill_Image but an appropiated field definition to store an image would be varbinary(MAX).

Upvotes: 4

Related Questions