Я спасаю фото в SQL (VARBINARY (MAX) Тип данных) с этим кодом:как сравнить двоичное (максимальное) значение, сохраненное в sql, чтобы знать, является ли оно нулевым, в C#?
if (SPV1 == true)
{
imgVC1 = Image.FromFile(Open1.FileName);
imgFormat1 = picVisit1.BackgroundImage.RawFormat;
Ms1 = new MemoryStream();
imgVC1.Save(Ms1, imgFormat1);
byte[] ArrayV1 = Ms1.GetBuffer();
csCompanies.VisitCard1 = ArrayV1;
}
else
csCompanies.VisitCard1 = null;
и продолжает с этим кодом в классе:
if(VisitCard1==null)
com.Parameters.AddWithValue("@VisitCard1", Convert.ToByte(VisitCard1));
else
com.Parameters.AddWithValue("@VisitCard1", VisitCard1);
I Used "Если" и " Else "для сохранения значения« Null », когда пользователь не изменил фотографию по умолчанию.
Null Данные, сохраненные как «0x00» в SQL.
Когда я хочу показать данные, я хочу знать, что данные в SQL являются Null или нет, если Null, что-то делать, а если нет, сделайте что-нибудь!
Но я не могу сравнить данные SQL с нулевым значением! и когда я использую
if(cscompanies.Logo1==Null)
результат всегда (False) [это значит его не Null, даже если он Сохраненный в Null (0x00)
Я использовал (DBNull.va lue) insted (Null), но я встречаю эту ошибку ((Неявное преобразование из типа данных nvarchar в varbinary (max) недопустимо. Используйте функцию CONVERT для запуска этого запроса.)) –
Спасибо 4 Ur Answer. Ur код был хорош 4 Null Value и решил мою проблему <3 Но когда я использовал Ur code 4 save Photo, когда мне захотелось показать, я встречаю эту ошибку ((Buffer не может быть null.)) ........ Разве я понял? : D –
Эта часть: com.Parameters.Add ("@ VisitCard1", SqlDbType.VarBinary, -1) .Value = VisitCard1; но когда я сохранил свой старый код -> ((com.Parameters.AddWithValue («@ VisitCard2», VisitCard2);)) это было показано без ошибки –