Сохранение растрового изображения, преобразованного в байтовый массив, в тип данных Varbinary(MAX) или SQL Server
Я хочу сохранить изображение в базе данных SQL Server. Я преобразовал изображение в байтовый массив, и тип данных столбца в базе данных varbinary(MAX)
но это не сработало, даже если я изменил его тип на Image
но я получаю те же результаты.
Я перешел по многим ссылкам из stackru, проекта кода, мечты в коде, но не смог найти свое решение, есть мой код для вставки байтового массива в базу данных
string query = @"INSERT INTO myTable (ID, byteArray, DateTime) VALUES (@ID, @byteArray, @datetime)";
try
{
command = new SqlCommand(query, base.conn);
command.Parameters.AddWithValue("@ID", id);
command.Parameters.AddWithValue("@byteArray", ss); // ss is byte[] from arguments
command.Parameters.AddWithValue("@datetime", DateTime.Now);
base.Open();
if (command.ExecuteNonQuery() > 0)
{
base.Close();
return true;
}
else
{
base.Close();
return false;
}
}
catch (SqlException ex)
{
base.Close();
return false;
}
Я также попробовал это с
command = new SqlCommand(query, base.conn);
command.Parameters.Add("@ID", id);
command.Parameters.Add("@byteArray", ss); // ss is byte[] from arguments
command.Parameters.Add("@datetime", DateTime.Now);
и вещь, которую он будет хранить в базе данных
но это покажет значение в 3-м столбце как <Binary data>
что это такое???
1 ответ
SQL Server Management Studio покажет <binary data>
когда некоторые двоичные данные (например, изображение) хранятся в этом столбце. Это работает как задумано!
На самом деле вы не увидите само изображение в SQL Server Management Studio. Я уверен, что ваш код работает просто отлично - слишком высоки ваши ожидания относительно того, что может сделать Management Studio....