请问大家在项目中如果遇到数据库内容为图片时怎么办

golderer 2006-04-20 05:11:49
一直很想弄明白这个问题,如果在设计的数据库中有一个字段为图片该怎么办?
我自己想了想一个是把图片变成binary存储,还有一个就是存储路径。
把图片存入数据库mssql这种大型的数据库还可以,如果是access呢,会不会只能存储很小的图片,如果数据条目多了以后又没有啥不良影响。
...全文
181 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
机器人 2006-04-21
  • 打赏
  • 举报
回复
我贴段代码吧,这段代码是将word文件存到Access数据库里的。
if(this.UploadFile.PostedFile != null)
{
int fileLength = UploadFile.PostedFile.ContentLength;
byte[] uploadBuffer = new byte[fileLength];
Stream fileStream = UploadFile.PostedFile.InputStream;
fileStream.Read(uploadBuffer, 0, fileLength);
string fileName = UploadFile.PostedFile.FileName.Substring(UploadFile.PostedFile.FileName.LastIndexOf("\\")+1);
OleDbConnection conn = null;
OleDbCommand comm = null;
try
{
conn = new OleDbConnection(this.strConn);
comm = new OleDbCommand();
comm.Connection = conn;
comm.CommandText = "INSERT INTO DOC (DOC_NAME, DOC_CONTENT, DOC_DATE) VALUES (@DocName, @DocContent, @DocDate)";
comm.Parameters.Add("@DocName", OleDbType.VarChar);
comm.Parameters["@DocName"].Value = fileName;
comm.Parameters.Add("@DocContent", OleDbType.Binary);
comm.Parameters["@DocContent"].Value = uploadBuffer;
comm.Parameters.Add("@DocDate", OleDbType.Date);
comm.Parameters["@DocDate"].Value = DateTime.Now;
conn.Open();
comm.ExecuteNonQuery();
this.Label1.Text = "Upload successfully.";
}
catch(Exception ex)
{
this.Label1.Text = ex.Message;
}
finally
{
if(conn != null)
conn.Close();
}
this.BindDataToRepeater();
}
viena 2006-04-21
  • 打赏
  • 举报
回复
放在数据库里不直观,不好管理,存取要耗更多资源
还是放文件路径比较好

数据库一般存放的是变化相对频繁的信息,数据库一般是唯一的,即使不唯一,其他的只是副本,与主数据库保持同步而已,所以与数据库去抢夺资源是不明智的,而且访问数据库要通过数据库接口的中间步骤(比如OLEDB),比直接文件访问效率低,

文件存放就相对比较简单,有专门优化用于文件存储的服务器,可以分散到多个服务器上,二进制文件读写用流的方式,可以利用磁盘与内存的直接交换,效率高
iceblue2005gather 2006-04-21
  • 打赏
  • 举报
回复
这个估计可以到网上google,一下,很多,我原来找的时候感觉很都是access的,搂主可以不求人的。^-^
golderer 2006-04-21
  • 打赏
  • 举报
回复
谁可以给一段C#向access中存储图片的代码啊。谢谢
xinyangt 2006-04-20
  • 打赏
  • 举报
回复
mssql等 拿来和access比 在数据量不大的时候区别不大

 特别是在数据量大的时候 你就能感觉性能有明显的提升
elivehai 2006-04-20
  • 打赏
  • 举报
回复
最好存储连接哦。
机器人 2006-04-20
  • 打赏
  • 举报
回复
Access里可以存Ole对象,即二进制对象。
copico 2006-04-20
  • 打赏
  • 举报
回复
ACCESS虽说小,可也不至于那么脆弱
golderer 2006-04-20
  • 打赏
  • 举报
回复
请大家都来说说

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧