I'm using a SQL Server 2008 stored procedure to create a new record with this syntax:
cmd.Parameters.Add("@photo", DBNull.Value)
cmd.ExecuteNonQuery()
but the result is a:
Operand type clash: nvarchar is incompatible with image
Photo is not the only parameter but is the only image one, I am not passing a nvarchar but a null value, am I missing something?
If you pass in
DBNull.Value
as the value, ADO.NET can't figure out what type the parameter should be. If you specify a string, or an integer value, the type of the SQL parameter can be derived from the value provided - but what type shouldDBNull.Value
be turned into??When passing in a NULL value, you need to specify that
SqlDbType
yourself, explicitly:That should work, I hope!
Update: same thing in C# would be:
There's a great, free, very useful VB.NET-to-C# converter out there - use it!