检索存储在sql server 2005中的图像的问题

时间:2011-06-13 17:51:57

标签: c# asp.net sql-server-2005

我正在尝试使用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();

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我认为你要做的是,

  1. 从数据库中抓取图片,
  2. 保存在磁盘上
  3. 将网址设置为该文件
  4. 发布的代码唯一明显错误的是您将ImageUrl设置为文字"Path"而不是存储在Path中的值。很明显,Path不是URL而是目录/文件路径,因此您需要做一些魔术来将其设置为URL。

    如果你不喜欢使用别人的代码,我可以检查一下   - http://aspnet.codeplex.com/releases/view/16449,它有效且非常棒。

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