如何在数据库中保存图片?

我正在研究Linq To Sql,WPF和我有一个数据库现在我需要在数据库中保存一些图片,但我不知道哪个是正确的数据类型来保存图片数据库(这个数据库将连接10个用户在同一时间)。 你能指出我正确的方法来克服这一步吗? 如果我没有错,那么在数据库中保存图片并不是一个好主意,但如果你能给我一个更好的方法,我会应用它。 非常感谢你的时间。

不错的问候

您可以使用’varbinary(MAX)’或’image’列类型。 Linq2Sql将自动生成一个使用二进制对象来包装图像的类。 Binary对象只是一个byte []的包装器。

myObject.Image = new Binary(imageByteArray); 

将图片存储为blob,包含图像的类中定义的变量可以是byte []流。 或者,您只需在数据库中存储对图片的引用,并将图像存储在文件服务器上。

通常,您将在数据库端使用varbinary(max) – 或小于max-,并且您将在类中使用byte []类型。

当人们谈论这个问题时会发生很多热烈的争论,我想请注意,您可能要考虑将该路径存储到数据库中的网络文件夹中。

将实际图像存储在数据库中的缺点是所有这些字节都必须通过sql查询来回发送,如果这些图像很大,你将大大增加数据库的大小。 以及上面提到的奇怪的事情。

无论如何我不想打开一jar蠕虫,只是想展示另一种选择。

更新:

像这样的东西:

 public partial class LinqClass { public string ImagePath { get; set; } public System.Drawing.Image Picture { get { return System.Drawing.Image.FromFile(ImagePath); } } } 

其中ImagePath是您要保存文件路径的数据库中的实际列。 这没有保存文件的代码(类似File.Save(ImagePath)等),但它是一个开始。

我从来没有用Linq做过,但我们使用b64转换为图像,然后使用clob数据类型。 当您想要查看图像时,请反转b64。