Ответ 1
Если вы передадите значение DBNull.Value
в качестве значения, ADO.NET не сможет определить, какой тип должен быть. Если вы укажете строку или целочисленное значение, тип параметра SQL можно получить из предоставленного значения - но какой тип должен DBNull.Value
быть преобразован в?
При передаче значения NULL вам нужно указать, что SqlDbType
самостоятельно, явно:
Dim photoParam As New SqlParameter("@photo", SqlDbType.Image)
photoParam.Value = DBNull.Value
cmd.Parameters.Add(photoParam)
cmd.ExecuteNonQuery()
Это должно сработать, надеюсь!
Обновление: то же самое в С# будет:
SqlParameter photoParam = new SqlParameter("@photo", SqlDbType.Image);
photoParam.Value = DBNull.Value;
cmd.Parameters.Add(photoParam);
cmd.ExecuteNonQuery();
Там есть отличный, бесплатный, очень полезный конвертер VB.NET-to-С# - используйте его!