La conversion implicite de type de données nvarchar à varbinary(max) n'est pas autorisé

J'obtiens cette erreur quand j'essaie d'insérer une DBNull.Valeur dans une nullable varbinary(max) champ:

Implicit conversion from data type nvarchar to varbinary(max) is not allowed. Use the CONVERT function to run this query.

C'est mon code:

  insertCMD.Parameters.AddWithValue("@ErrorScreenshot", SqlDbType.VarBinary).Value = DBNull.Value;

Je sais qu'il existe des doublons de questions, mais je n'utilise PAS une Chaîne comme les autres.

Que dois-je tort?

Mise à JOUR:

using (var insertCMD = new SqlCommand("INSERT INTO TestplanTeststep (TeststepId,TestplanId,CreatedAt,ErrorText,ErrorScreenshot,TestState) VALUES (@TeststepId, @TestplanId,@CreatedAt,@ErrorText,@ErrorScreenshot,@TestState)", con))
{
 var p1 = insertCMD.Parameters.Add("@TeststepId", SqlDbType.Int);
 var p2 = insertCMD.Parameters.Add("@CreatedAt", SqlDbType.DateTime);
 insertCMD.Parameters.AddWithValue("@TestplanId", testplan.Id);
 insertCMD.Parameters.AddWithValue("@ErrorText", (object) DBNull.Value);
 insertCMD.Parameters.AddWithValue("@ErrorScreenshot", (object) DBNull.Value);
 insertCMD.Parameters.AddWithValue("@TestState", (int)Teststep.TeststepTestState.Untested);

       foreach (Teststep step in teststeps)
        {
           p1.Value = step.Id;
           p2.Value = step.CreatedAt;
           insertCMD.ExecuteNonQuery();
        }
     }
Ne ressemble pas à la bonne ligne de code. UniqueIdentifier n'est pas mentionné du tout. Peut-être de fournir la procédure stockée définition trop?
Désolé, j'ai copié le mauvais exception. Maintenant son corrigé.
Le deuxième paramètre de AddWithValue est la valeur. Pas le type de données.

OriginalL'auteur Pascal | 2012-07-10