2014-04-15 28 views
0

我想将图像存储在SQL Server数据库中。我已经将图像转换为字节数组,并且数据库中的列的数据类型为varbinary(MAX),但即使将其类型更改为Image,但它仍无法正常工作,但得到的结果相同。存储位图转换为Varbinary(MAX)中的字节数组或SQL Server的图像数据类型

我遵循了计算器,代码项目,梦想代码中的许多环节,但无法找到我的解决方案,这正是我插入字节数组中的数据库

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

,它会在数据库

The 3rd Column is of Image type and i am sending byte array in it

储物

但它会显示第3列的值为<Binary data>那是什么?

+0

@marc_s,这就是答案,如果你发布的是,我会提高它。 –

回答

1

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

在SQL Server Management Studio中,您实际上不会看到图片本身。我很确定你的代码工作得很好 - 只有你对管理工作室能做什么的期望太高......

+0

但我如何检索它,以便我可以将其转换为位图 – Assassino

+0

@assassino:您只需使用标准查询来“SELECT”数据并将其作为字节数组/流返回给.NET应用程序,您可以然后输入到“Bitmap”类中......但这是一个完全不同的问题! –

+0

确定完成:)谢谢 – Assassino

相关问题