me sale esta excepción cuando trato de insertar un DBNull.Value en un campo anulable varbinary (max):conversión implícita del tipo de datos nvarchar a varbinary (max) no está permitido
Implicit conversion from data type nvarchar to varbinary(max) is not allowed. Use the CONVERT function to run this query.
Ésta es mi código:
insertCMD.Parameters.AddWithValue("@ErrorScreenshot", SqlDbType.VarBinary).Value = DBNull.Value;
sé que existen preguntas duplicadas en el SO, pero yo no uso ninguna cadena como hacen los demás.
¿Qué es lo que me pasa?
ACTUALIZACIÓN:
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();
}
}
No se ve como la línea de código correcta. UniqueIdentifier no se menciona en absoluto. Tal vez proporcionar la definición de procedimiento almacenado también? – Sean
Lo siento, copié la excepción incorrecta. Ahora está corregido. – Pascal
El segundo parámetro de 'AddWithValue' es el valor. No es el tipo de datos. –