2014-04-15 62 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

相關問題