c# - 使用 C# 从 SQL Server 数据库中保存和检索图像

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

我创建了一个网页,其中使用了 Image 控件来显示图像。除了这个控件,我还有一些标签和输入框

下面是我用来将图像保存到数据库的代码

byte[] imageSize = new byte[FileUpload1.PostedFile.ContentLength];
HttpPostedFile uploadedImage = FileUpload1.PostedFile;
uploadedImage.InputStream.Read(imageSize, 0, (int)FileUpload1.PostedFile.ContentLength);

SqlParameter UploadedImage = new SqlParameter("@image", SqlDbType.Image, imageSize.Length);
UploadedImage.Value = imageSize;

string sql = "insert into imageDB(Image) values (@image)";

using (SqlCommand cmd = new SqlCommand(sql, conn))
{
   cmd.Parameters.Add(UploadedImage);
   cmd.ExecuteNonQuery();
}

下面是我用来从数据库中检索图像的代码

byte[] rawImg = (byte[])rdr["image"];
MemoryStream Stream = new MemoryStream();
Stream.Write(rawImg, 0, rawImg.Length);
Bitmap Display_Picture = new Bitmap(Stream);
//after this no idea how to proceed

我看过一些链接都建议我们不能将这个字节信息设置到Image控件。

让我知道我从数据库中检索图像的方法是否正确,如果正确,我应该使用什么类型的控件,以便从数据库中检索的图像可以显示在网页上

最佳答案

我从数据库中检索图像的方式是否正确?

我会改用下面的代码(抱歉没有测试过):

byte[] imageBytes = Convert.FromBase64String(rdr["image"]);
MemoryStream stream = new MemoryStream(imageBytes);
Image image = Image.FromStream(stream);

如何将图像绑定(bind)到 asp.net 图像控件?

我会创建一个获取并返回图像的 HttpHandler。然后将 asp:Image 上的 ImageUrl 属性绑定(bind)到 HttpHandler 的 url。 您可以在 Dale Ragan 的回答中看到如何做到这一点:How to bind a MemoryStream to asp:image control?

关于c# - 使用 C# 从 SQL Server 数据库中保存和检索图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16261566/

相关文章:

c# - 在 C# 中迭代​​堆栈的最快方法

c# - HttpContext.Current.User.Identity.IsAuthenticated 在登录控件 LoggedIn 事件中为 false

css - 无法在 ASP.NET 中将一个 div 设置在另一个 div 之前

c# - ASP.NET MVC DropDownList 在事件时不显示颜色

asp.net - 这些评论有什么区别

mysql - 如何在一个 View 中从 SQL 中的另一个表求和?

c# - 在页面上注册/引用之前以编程方式修改嵌入式资源

c# - 如果为 false,则停止在自定义验证器中执行

sql - 我可以将此数据库设计走多远?

php - 使用 SQL 获取空记录