簡體   English   中英

將圖像存儲在SQL Server CE數據庫中

[英]Store an image in a SQL Server CE database

有沒有人知道如何在SQL Server CE數據庫中存儲圖像?

該列應該是什么數據類型? (我猜二進制。)

我使用Linq-To-Datasets。 有可能使用它將圖像放入數據庫並在以后再次將其拉出來嗎?

謝謝你的建議。


我是這樣做的:

MemoryStream stream = new MemoryStream();
myBitmapImage.Save(stream, ImageFormat.Png);
myInsertLinqToDataSetRow.IMAGE_COLUMN = stream.ToArray();

要重新加載它我做了這個:

MemoryStream stream = new MemoryStream(myLinqToDataSetRow.IMAGE_COLUMN);
myBitmapImage.SignatureImage = new Bitmap(stream);

我在MSDN上找到一個頁面,表示Image列類型正在消失,你應該使用varbinary(MAX)。 SQL Server CE不支持Max,所以我做了varbinary(8000)。

稍后注意:雖然SQL Server CE不支持varbinary(max)。 Varbinary(8000)對於許多圖像來說都不夠大。 即使計划棄用,我也最終使用了Image類型。 一旦ms在移動平台上提供合理的交替,我將考慮切換。

這是一篇MSDN文章,解釋了如何:

http://support.microsoft.com/kb/318639

不幸的是,這個例子是在VB中,但我相信你可以了解如何做到這一點。

我會說二進制數據類型可以用於存儲圖像。

你為什么不使用Image類型? 以下是sql server ce支持的類型說明。

Image - 可變長度二進制數據,最大長度為2 ^ 30 - 1(1,073,741,823)字節。

這不是你問題的直接答案,但我已經很好地將圖像的文件路徑(例如:C:\\ images \\ image1.png)存儲為數據庫中的字符串值而不是原始圖像。

這樣做的一個優點是它可以使數據庫大小更小。

另一個是多個表可以指向圖像而不存儲圖像的多個副本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM