2012-02-14 93 views
3

我創建了一個數據表圖像數據類型的SQL Server 2008的C#的數據類型

CREATE TABLE [ProductImages] 
(
[ProductImageID] [int] IDENTITY(1,1) NOT NULL, 
[ProductImage] [image] NOT NULL 
CONSTRAINT [PK_ProductImages] PRIMARY KEY CLUSTERED 
(
    [ProductImageID] ASC 
) 
) 

我想寫ProductImages類在C#

public class ProductImages 
{ 
    private int productImageID; 

    public int ProductImageID 
    { 
     get { return productImageID; } 
     set { productImageID = value; } 
    } 

// I need to declare property for ProductImage??? 

} 

我如何申報財產ProductImage?

+0

作爲SQL Server 2005中的,'IMAGE'是** **棄用 - 你不應該再使用它來。使用'VARBINARY(MAX)'代替 – 2012-02-15 06:02:45

+0

您可以通過使用CAST投圖像VARBINARY(MAX)(MyImageField AS VARBINARY(MAX)。反過來,你可投VARBINARY(MAX)爲VARCHAR(MAX),如果需要的話。 – 2016-03-22 14:48:43

回答

14
public byte[] ProductImage { get; set;} 

會工作...圖片只是二進制文件,並封送他們SQL Server和作爲字節[]數據類型的應用程序之間。

9

使用C#中的byte[]我建議改變你的列類型VARBINARY(MAX)。支持圖像數據類型將是removed in the future

+1

好, +1提到varbinary(max)。我錯過了第一次看到這個,這是存儲數據的一種更好的方式。順便說一下,將它轉換爲使用FILESTREAM也是很容易的,這是處理的文件被上傳到SQL – NotMe 2012-02-14 23:34:42

+0

感謝額外的信息 – user1135534 2012-02-14 23:35:04

+1

@ChrisLively - 。是的,FILESTREAM是大型的二進制數據的好(有時更好)選項,我與它的經驗有好有壞(我發現它有點麻煩時與正常的ORM類型的CRUD混合使用),但它確實可以像廣告一樣工作,在下一個版本中應該會更好(http://simranjindal.wordpress.com/2011/08/30/denali-ctp-3-how -to-建立最文件表和存取的-非結構化數據從-SQL -服務器/) – 2012-02-14 23:38:57