`
cpsing
  • 浏览: 73079 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

.NET在SQL SERVER中的图片存取技术

阅读更多
本文总结如何在.Net WinForm和.Net WebForm(asp.net)中将图片存入SQL Server中并读取显示的方法 。
1.使用asp.net将图片上传并存入SQL Server中,然后从SQL Server中读取并显示出来:
1)上传并存入SQL Server
数据库结构
create table test
{
id identity(1,1),
FImage image
}
相关的存储过程
Create proc UpdateImage
(
@UpdateImage Image
)
As
Insert Into test(FImage) values(@UpdateImage)
GO
在UpPhoto.aspx文件中添加如下:
<input id="UpPhoto" name="UpPhoto" runat="server" type="file">
<asp:Button id="btnAdd" name="btnAdd" runat="server" Text="上传"></asp:Button>
然后在后置代码文件UpPhoto.aspx.cs添加btnAdd按钮的单击事件处理代码:
private void btnAdd_Click(object sender, System.EventArgs e)
{
//获得图象并把图象转换为byte[]
HttpPostedFile upPhoto=UpPhoto.PostedFile;
int upPhotoLength=upPhoto.ContentLength;
byte[] PhotoArray=new Byte[upPhotoLength];
Stream PhotoStream=upPhoto.InputStream;
PhotoStream.Read(PhotoArray,0,upPhotoLength);
//连接数据库
SqlConnection conn=new SqlConnection();
conn.ConnectionString="Data Source=localhost;Database=test;User Id=sa;Pwd=sa";
SqlCommand cmd=new SqlCommand("UpdateImage",conn);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@UpdateImage",SqlDbType.Image);
cmd.Parameters["@UpdateImage"].Value=PhotoArray;
//如果你希望不使用存储过程来添加图片把上面四句代码改为:
//string strSql="Insert into test(FImage) values(@FImage)";
//SqlCommand cmd=new SqlCommand(strSql,conn);
//cmd.Parameters.Add("@FImage",SqlDbType.Image);
//cmd.Parameters["@FImage"].Value=PhotoArray;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
2)从SQL Server中读取并显示出来
在需要显示图片的地方添加如下代码:
<asp:image id="imgPhoto" runat="server" ImageUrl="ShowPhoto.aspx"></asp:image>
ShowPhoto.aspx主体代码:
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
SqlConnection conn=new SqlConnection()
conn.ConnectionString="Data Source=localhost;Database=test;User Id=sa;Pwd=sa";
string strSql="select * from test where id=2";//这里假设获取id为2的图片
SqlCommand cmd=new SqlCommand(strSql,conn);
conn.Open();
SqlDataReader reader=cmd.ExecuteReader();
reader.Read();
Response.ContentType="application/octet-stream";
Response.BinaryWrite((Byte[])reader["FImage"]);
Response.End();
reader.Close();
}
}

2.在WinForm中将图片存入SQL Server,并从SQL Server中读取并显示在picturebox中
1),存入SQL Server
数据库结构和使用的存储过过程,同上面的一样
首先,在窗体中加一个OpenFileDialog控件,命名为ofdSelectPic ;
然后,在窗体上添加一个打开文件按钮,添加如下单击事件代码:
Stream ms;
byte[] picbyte;
//ofdSelectPic.ShowDialog();
if (ofdSelectPic.ShowDialog()==DialogResult.OK)
{
if ((ms=ofdSelectPic.OpenFile())!=null)
{
//MessageBox.Show("ok");
picbyte=new byte[ms.Length];
ms.Position=0;
ms.Read(picbyte,0,Convert.ToInt32(ms.Length));
//MessageBox.Show("读取完毕!");
//连接数据库
SqlConnection conn=new SqlConnection();
conn.ConnectionString="Data Source=localhost;Database=test;User Id=sa;Pwd=sa";
SqlCommand cmd=new SqlCommand("UpdateImage",conn);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add("@UpdateImage",SqlDbType.Image);
cmd.Parameters["@UpdateImage"].Value=picbyte;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
ms.Close();
}
}
2)读取并显示在picturebox中
首先,添加一个picturebox,名为ptbShow
然后,添加一个按钮,添加如下响应事件:
SqlConnection conn=new SqlConnection();
conn.ConnectionString="Data Source=localhost;Database=test;User Id=sa;Pwd=sa";
string strSql="select FImage from test where id=1";
SqlCommand cmd=new SqlCommand(strSql,conn);
conn.Open();
SqlDataReader reader=cmd.ExecuteReader();
reader.Read();
MemoryStream ms=new MemoryStream((byte[])reader["FImage"]);

Image image=Image.FromStream(ms,true);
reader.Close();
conn.Close();
ptbShow.Image=image;<script></script> 
 

分享到:
评论

相关推荐

    ASP.NET如何存取SQL Server数据库图片

    本文将深入探讨如何在ASP.NET应用程序中存取存储于SQL Server数据库中的图片,这一技能对于构建功能丰富的网站或应用至关重要。 ### 核心知识点:ASP.NET与SQL Server数据库图片操作 #### 1. 数据库设计与结构 ...

    Asp.Net在SqlServer中的图片存取技术

    ### ASP.NET 在 SQL Server 中的图片存取技术详解 #### 一、背景介绍 随着Web应用的不断发展,用户对于多媒体内容的需求越来越高。特别是在一些需要上传和展示图片的应用场景下,如何高效地处理这些图片成为了一个...

    ASP.Net在SqlServer中的图片存取技术

    ASP.NET 在 SQL Server 中的图片存取技术是 Web 开发中常见的需求,涉及到数据存储和图像处理。以下将详细讲解如何实现这个功能。 首先,我们需要创建一个用于存储图片的数据库表。表结构如下: ```sql CREATE ...

    Vb.net向sql server数据库中保存图片

    在本节中,我们将讨论如何使用 VB.NET 将图片保存到 SQL Server 数据库中,并从数据库中取出图片浏览。这个例程使用了 SQL Server 的 Northwind 数据库,其中 employees 表有一个字段“photo”,用于存放照片的。 ...

    餐饮管理系统(完整可运行)ASP.Net+SqlServer.zip

    本系统——“餐饮管理系统(完整可运行)ASP.Net+SqlServer.zip”,正是这样一款利用先进的编程语言C#和数据库技术SQL Server构建的高效管理工具。本文将详细介绍该系统的核心技术和主要功能,帮助读者了解其工作原理...

    ASP.NET如何存取SQL Server数据库图片.doc

    "ASP.NET 如何存取 SQL Server 数据库图片" 本文主要讲述了如何在 ASP.NET 中存取 SQL...本文详细地介绍了如何在 ASP.NET 中存取 SQL Server 数据库中的图片,包括建立数据库表、存储图片、读取图片和输出图片等步骤。

    一个VB.NET连接Sql Server实例-简单图书管理系统

    在VB.NET编程环境中,连接到SQL Server数据库是常见的任务,特别是在构建像“简单图书管理系统”这样的应用程序时。这个实例展示了如何使用VB.NET的ADO.NET库来实现数据的存取和管理。下面将详细介绍如何通过VB.NET...

    如何用VB.NET存取SQL Server2000中的图像数据.pdf

    在探讨如何使用***读写SQL Server 2000中的图像数据时,文章提供了详细的背景知识、技术方法和程序实现步骤。以下是对文章内容的综合解读: 1. SQL Server 2000中的图像数据存储机制 在SQL Server 2000中,对于小于...

    Delphi8.Net与SQLServer2000的实际应用.zip

    本文将深入探讨如何在Delphi 8 .Net环境中,利用其强大的组件库与SQL Server 2000进行实际交互,实现数据的存取和管理。 一、Delphi 8 .Net的特性 1. Visual Component Library (VCL) for .NET:Delphi 8 .Net继承...

    ADO.NET存取SQL SERVER 2000中图像数据的实现.pdf

    总的来说,本文通过探讨在.NET环境下存取SQL Server 2000中图像数据的不同方法,为相关领域的程序设计和数据库管理提供了专业的指导和参考。这些方法和技术的应用,对于需要处理图像数据信息管理系统来说,具有重要...

    ▲ADO.NET与SQLServer

    ADO.NET是Microsoft .NET框架中用于数据访问的核心组件,它是在旧有的ADO(ActiveX Data Objects)基础上发展而来的新一代数据存取技术。ADO.NET提供了一组类库,用于高效地处理各种数据源,包括关系型数据库如SQL ...

    基于ADO.NET的SQL Server数据库image对象的存取及其效率分析.pdf

    本文档提供了基于***技术框架对Microsoft SQL Server数据库中image对象的存取技术的介绍,并分析了数据分块大小对存取效率的影响。 首先,***作为.NET平台的一部分,为开发者提供了一种一致的方式来访问数据源,...

    sql server数据库如何存取图片

    ### SQL Server 数据库如何存取图片 在 IT 领域中,数据库管理是一项至关重要的技术,尤其是在处理大量数据和多媒体资源时。SQL Server 作为一款功能强大的关系型数据库管理系统,支持多种数据类型,包括存储图像...

    vb.net操作sql

    1. **连接数据库**:在VB.NET中,你可以使用SqlConnection类来建立与SQL Server的连接。例如: ```vb.net Dim conn As New SqlConnection("Data Source=YourServerName;Initial Catalog=YourDatabase;User ID=...

    dsoframer.ocx 调用例子(asp.net+sqlserver)

    【标题】"dsoframer.ocx 调用例子(asp.net+sqlserver)" 描述了一种在ASP.NET环境中利用DSOFramer控件与SQL Server数据库交互的技术实践。DSOFramer.ocx是一个ActiveX控件,常用于网页中集成文档预览和编辑功能。在...

    用SQL server存取图片

    5. **安全与备份**:存储图片在数据库中时,要确保遵循最佳安全实践,如限制对图片数据的访问权限,定期备份数据库,以防止数据丢失。 6. **索引与查询优化**:由于图片数据通常不会用于搜索或过滤,所以一般不需要...

    asp.net+SQL2005

    开发者可以使用ASP.NET创建用户界面和业务逻辑,通过ADO.NET(一种.NET Framework中的数据访问技术)连接到SQL Server 2005,进行数据的存取操作。ASP.NET页面可以与SQL Server进行交互,执行查询、更新数据库,甚至...

Global site tag (gtag.js) - Google Analytics