0

我想将图像存储在 SQL Server 数据库中。我已经将图像转换为字节数组,并且数据库中列的数据类型是,varbinary(MAX)但即使我将其类型更改为它也不起作用,Image但我得到了相同的结果。

我已经关注了来自 stackoverflow、代码项目、代码中的梦想的许多链接,但找不到我的解决方案,我的代码用于在数据库中插入字节数组

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);

以及它将存储在数据库中的东西

第三列是图像类型,我在其中发送字节数组

但它会显示第三列中的值是<Binary data>什么???

4

1 回答 1

1

SQL Server Management Studio 将显示<binary data>一些二进制数据(如图片)何时存储在该列中。这是按设计工作的

您实际上不会在 SQL Server Management Studio 中看到图片本身。我很确定您的代码可以正常工作 - 只是您对 Management Studio 可以做什么的期望太高了......

于 2014-04-15T18:56:00.647 回答