把图片保存到数据库中,并显示到GridView中

ybyjcel 2012-02-13 05:00:39
那位大侠帮助指点一下。
string fullpath = FileUpload1.PostedFile.FileName;
FileStream fs = new FileStream(fullpath, FileMode.Open, FileAccess.Read);
byte[] imagebytes = new byte[fs.Length];
BinaryReader br = new BinaryReader(fs);
imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));//把所选图片文件的流中的数据读入字节数组

SQL = "Insert into XXXX_Image (PsnImage) Values ('" +imagebytes + "') ";

...全文
121 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
还想懒够 2012-02-13
  • 打赏
  • 举报
回复
private string ConvertBytesToString(byte[] bytes)
{
StringBuilder sb = new StringBuilder();
foreach (byte b in bytes)
{
string sby = Convert.ToString(b, 16);

if (sby.Length == 1)
{
sby = "0" + sby;
}
sb.Append(sby);
}
return sb.ToString();
}



string fullpath = FileUpload1.PostedFile.FileName;
FileStream fs = new FileStream(fullpath, FileMode.Open, FileAccess.Read);
byte[] imagebytes = new byte[fs.Length];
BinaryReader br = new BinaryReader(fs);
imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));//把所选图片文件的流中的数据读入字节数组

SQL = "Insert into XXXX_Image (PsnImage) Values (0x" + ConvertBytesToString(imagebytes) + ") ";


至于显示,参考以下链接:
http://blog.csdn.net/lsd123/article/details/3655370
小孩快跑 2012-02-13
  • 打赏
  • 举报
回复
的确,没什么人把图片存储在数据库中,存路径就行啦!
叶子 2012-02-13
  • 打赏
  • 举报
回复
图片存文件路径和文件名即可,在模板列里绑定数据库中的图片路径即可。
  • 打赏
  • 举报
回复
建议把图片放在一个文件夹里,数据库里只存路径就行。
低调之人 2012-02-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chinajiyong 的回复:]

参数化
C# code

SqlConnection conn = new SqlConnection(ConStr);
string strSql = "insert into Hospital_Employees(EmpNum,EmpName,EmpFingerTmp) values(@EmpNum,@EmpName,@EmpFingerTmp)";
SqlCommand ……
[/Quote]
执行参数化比较好
EnForGrass 2012-02-13
  • 打赏
  • 举报
回复
参数化

SqlConnection conn = new SqlConnection(ConStr);
string strSql = "insert into Hospital_Employees(EmpNum,EmpName,EmpFingerTmp) values(@EmpNum,@EmpName,@EmpFingerTmp)";
SqlCommand cmd = new SqlCommand(strSql, conn);

cmd.Parameters.Add("@EmpFingerTmp", SqlDbType.Binary);
cmd.Parameters["@EmpFingerTmp"].Value = imagebytes;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
V-Far 2012-02-13
  • 打赏
  • 举报
回复
存为image类型就是byte.读取出来的时候也是byte.需要手工转成图片.
还是建议存储为文件.减少数据库体积
huayy 2012-02-13
  • 打赏
  • 举报
回复
最好是把图片保存到文件夹里,数据库中保存路径。
你这是把文件保存到数据库中去了,比较麻烦,以后维护也不便。
ybyjcel 2012-02-13
  • 打赏
  • 举报
回复
我在网上找的方法,在执行上面的SQL语句后,不管图片的大小、内容是什么,数据库中PsnImage(image类型)都是为“0x53797374656D2E427974655B5D”,而且也显示不出图片。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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