我有一些简单的实体现在需要有一个配置文件的图像。 什么是这样做的正确方法? 因此,它是1对1的关系,一个图像仅涉及一个实体,反之亦然。 此图像应通过网页表单上载与插入相关的实体一起。
如果任何人都可以点我朝着正确的方向如何坚持图像数据库和相关的实体将是巨大的。
我有一些简单的实体现在需要有一个配置文件的图像。 什么是这样做的正确方法? 因此,它是1对1的关系,一个图像仅涉及一个实体,反之亦然。 此图像应通过网页表单上载与插入相关的实体一起。
如果任何人都可以点我朝着正确的方向如何坚持图像数据库和相关的实体将是巨大的。
就在方评论: 我觉得是不是存储在数据库的图像是一个好主意 。
一般不在分贝是个好主意存储图像作为DBS的设计存储文本没有大的二进制块。 要好得多,以存储图像路径和有一个文件夹中的图片。 如果你想确保1对1的关系名称图像与实体(1323.jpg)的ID。
如果你想有图像路径应遵循的一些准则(一般代码防守):
但我相信,由于某种原因,你应该这样做。 因此,为了实现你想要的:
DB设计
C#代码
用户字节数组来存储它
检查此链接代码示例: http://www.codeproject.com/Articles/21208/Store-or-Save-images-in-SQL-Server
该代码是微不足道的,但为什么DB? 如果这是一个网站,为什么不把它保存到磁盘上的位置,在那里你可以轻松地引用呢?
数据库被优化以存储和已知的大小的数据相对小的尺寸。 您选择的图像将最有可能是在长度上比8KB更多(mearning其一个MAX的数据类型)。 图像会从你的“个人资料”被存储在单独的行/页。
我个人倒将图像保存在一个已知的文件夹,并使用id为图像名称。 对于不具备的图像,并使用标准的gif或相似的外形,很可能保持它的简单/由具有简档ID simlinks /硬链接到公共GIF修剪。
public class Profile
{
public int Id {get;}
public string Name {get; private set;}
public Image Picture {get; private set;}
public void Save()
{
using (var connection = new SqlConnection("myconnectionstring"))
using (var command = new SqlCommand("", connection))
{
command.CommandText =
"UPDATE dbo.TblProfile " +
"SET " +
"Name = @name, " +
"Picture = @picture " +
"WHERE ID = @id";
command.Parameters.AddWithValue("@name", Name);
command.Parameters.AddWithValue("@picture", Picture);
command.Parameters.AddWithValue("@id", Id);
command.ExecuteNonQuery();
}
}
}
我想下面的链接会给你的解决方案,
上传图像并保存在数据库