Saurabh
Saurabh

Reputation: 1631

Implicit conversion from data type varchar to varbinary(max) is not allowed c#

I am trying to insert byte[] into varbinary(MAX) column in sql server
Below is my code

SqlCommand cmd = new SqlCommand("Insert Into Details values ('@name','@Biometric','@TemplateBytesLength','@date') ", con);
cmd.Parameters.AddWithValue("name", txt_name.Text.Trim());
SqlParameter sqlParam = cmd.Parameters.AddWithValue("@Biometric", bTemplateDataOne);
sqlParam.DbType = DbType.Binary;
//cmd.Parameters.AddWithValue("Biometric", bTemplateDataOne);
cmd.Parameters.AddWithValue("TemplateBytesLength", bTemplateDataOne.Length);
cmd.Parameters.AddWithValue("date", DateTime.Now);

cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
con.Close();

bTemplateDataOne is an byte[]

byte[] bTemplateDataOne;

The error i am getting is this
Implicit conversion from data type varchar to varbinary(max) is not allowed. Use the CONVERT function to run this query.
Why it does not allow to insert data into SQL table enter image description here

Upvotes: 0

Views: 2653

Answers (1)

daniell89
daniell89

Reputation: 2282

I think that better solution will be using SqlParameter like this:

cmd.Parameters.Add("@Biometric", SqlDbType.VarBinary, 8000).Value = bTemplateDataOne;

Upvotes: 1

Related Questions