У меня есть таблица, в которую изображение загружается в виде байтового массива или байта [0], если пользователь его не предоставляет.
cmd.Parameters.AddWithValue("@pic", string.IsNullOrEmpty(updateObj.image) ? new byte[0] : Convert.FromBase64String(updateObj.image.Split(',').Last()));
Однако, когда я извлекаю данные обратно, оно говорит, что типом является 'объект', хотя .GetType()
возвращает System.Byte[]
.
Вот тип получаемой мной ошибки:
byte[] b = new byte[0];
Console.WriteLine("reader[pic] type is " + reader["pic"].GetType());
Console.WriteLine("b type is " + b.GetType());
отображается как:
reader[pic] type is System.Byte[]
b type is System.Byte[]
но пытается:
b = reader["pic"]
показывает:
Cannot implicitly convert type 'object' to 'byte[]'. An explicit conversion exists (are you missing a cast?)
Вот изображения, если они помогают.

Явное приведение типов работает, но я хотел бы знать, почему это происходит.