I got this error while insert the image file’s byte [] data into Sql server database in image datatype column. I am using SqlParameter to pass input image file’s byte array. Since I don’t found the DbType.Image, just given DbType.Object as document suggests (DbType.Object-A general type representing any reference or value type not explicitly represented by another DbType value).
ERROR – Operand type clash: sql_variant is incompatible with image:
Fix Error – Operand type clash: sql_variant is incompatible with image:
The error was fixed when I change the DbType from DbType.Object to DbType.Binary
public static void InsertImageintoSqlDatabaseAsImage(string imageFilePath) { using (SqlConnection sqlconnection = new SqlConnection(@"Data Source=.SQLExpress; Initial Catalog=MorganDB; Integrated Security=SSPI;")) { sqlconnection.Open(); // create table if not exists string createTableQuery = @"Create Table [UserTable] ( UserID int, [Photo] image)"; SqlCommand command = new SqlCommand(createTableQuery, sqlconnection); command.ExecuteNonQuery(); // Converts image file into byte[] byte[] imgData = File.ReadAllBytes(imageFilePath); string insertXmlQuery = @"Insert Into [UserTable] (UserID,[Photo]) Values(1,@Photo)"; // Insert Image Value into Sql Table by SqlParameter SqlCommand insertCommand = new SqlCommand(insertXmlQuery, sqlconnection); SqlParameter sqlParam = insertCommand.Parameters.AddWithValue("@Photo", imgData); sqlParam.DbType = DbType.Binary; insertCommand.ExecuteNonQuery(); } }
Thanks,
Morgan
Software Developer
Advertisement