检索存储在sqlserver2005中的映像时出现问题

本文关键字:问题 映像 存储 sqlserver2005 检索 | 更新日期: 2023-09-27 17:59:07

我正在尝试使用c#将图像从sql server 2005检索到asp.net网页中,这是我的代码

SqlCommand getImageCmd = new SqlCommand("select Image from Images where ImageName = '" + getImageDropDownList.SelectedValue.ToString() + "'", con);
byte[] imageData = (byte[])getImageCmd.ExecuteScalar();
FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
fs.Write(imageData, 0, (imageData.Length) );
Image1.ImageUrl = "path";
fs.Close();

问题是我的图像控件中没有任何输出。

这是我用来将图像存储到数据库中的代码:byte[]data=ImageUpload。FileBytes;

SqlCommand sc = new SqlCommand("insert into Images(ImageName,Image) values (@n, @p)", con);
sc.Parameters.AddWithValue("@p", data);
sc.Parameters.AddWithValue("@n", imageNameTextBox.Text);
sc.ExecuteNonQuery();

检索存储在sqlserver2005中的映像时出现问题

试试看这里:

使用Microsoft从SQL Server存储和检索图像。NET

我想你想做的是,

  1. 从数据库中抓取图像
  2. 保存在磁盘上
  3. 设置该文件的URL

发布的代码唯一明显错误的地方是将ImageUrl设置为文本"Path",而不是存储在Path中的值。很明显,Path不是URL,而是目录/文件路径,所以你需要做一些魔术来将其设置为URL。

如果你不反对使用别人的代码,并且能够使用,我会检查一下-http://aspnet.codeplex.com/releases/view/16449,它很有效,非常棒。

如果其他一切都失败了,请考虑编写自己的ASHX或实现IHttpHandler来解决这个问题。一个快速的谷歌发现了这个http://www.dotnetperls.com/ashx