Если вы передадите 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()
Надеюсь, это должно сработать!
Обновление: То же самое в C # будет:
SqlParameter photoParam = new SqlParameter("@photo", SqlDbType.Image);
photoParam.Value = DBNull.Value;
cmd.Parameters.Add(photoParam);
cmd.ExecuteNonQuery();
Существует отличный, бесплатный, очень полезный конвертер VB.NET-to-C # - используйте его!