资源大全 | 神秘文化 | 在线翻译 | QQ专区 | 视频教程 | 彩信频道 | 搜索引擎 | BT下载 |  | 网站地图
设为首页
加入收藏
联系站长
您现在的位置: 一百网络 >> ASP.NET编程 >> 数据库应用 >> 文档正文
最近更新
普通文档 SQL2000的XML功能将现有
普通文档 使用SQLServer2000将现有
普通文档 如何在DataGrid绑定之前
普通文档 使用DataReader还是Data
普通文档 Sql与Asp.Net数据类型对
普通文档 SQL查询语句对象化的实现
普通文档 在ADO.NET数据集中浏览多
普通文档 Web中DataGrid绑定数据显
推荐文档 SQL server 系统储存过程
推荐文档 经常用到的交叉表问题,一
推荐文章
推荐文档 SQL server 系统储存过程
推荐文档 经常用到的交叉表问题,一
推荐文档 使用ADO.NET轻松操纵数据
推荐文档 ASP.NET中数据库数据导入
推荐文档 定制DataGrid的外观
推荐文档 保存图片到SQL 2000 Ser
推荐文档 关于DataGrid的动态排序
保存图片到SQL 2000 Server数据库

文章作者:佚名 录入时间:2006-6-13 来源:不详
网站声明:本站的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出处和原始作者,文章版权归本网站与文章作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。


保存图片到SQL 2000 Server数据库
作者: vivekthangaswamy

在ASP.NET的Web页面中怎样上传文件?怎样使用ADO.NET技术从数据库中读取一幅图片,并在Web页面上显示?


摘要
.NET是由微软开发的一种新型的分布式计算平台,ASP.NET是它针对Web开发的编程模式。本文的目的是在开发数据驱动的ASP.NET Web应用程序中获取一些好的经验。这个应用程序将告诉你怎么把一幅图片保存到数据库中以及怎样把图片从数据库中读取出来。它以ADO.NET作为数据访问机制,C#作为编程语言,SQL 2000 Server作为后台数据库。
概述
一般的,很大的图片文件往往被保存在Web服务器的文件夹中,而不是数据库中。在一些实例中,以银行系统为例,人们先把用户的签名做成图片文件,然后保存到数据库中。
数据库模式


在这个示范中,微软的SQL 2000 Server被用作后台数据库。我使用了一种比较特殊的数据类型 image 。这 image 数据类型是被用来保存图片到数据库的。
所使用的控件:

System.Web.UI.HtmlControls.HtmlInputFile

System.Web.UI.WebControls.TextBox

System.Web.UI.WebControls.Button

所使用的名字空间:


       using System.Data.SqlClient;

       using System.Drawing;

using System.Data;

using System.IO;

using System.Drawing.Imaging;
编码
使用 HtmlInputFile 类,它可以用 <input type="file" runat="server"/> 标签来声明一个实例。下面的例子是一个完整的 ASPX 文件,它让用户上传图片文件以及图片的说明。OnUpload 方法把图片以及说明写到iSense 数据库的Picture 表中。

// 保存图片文件到数据库的源码




 


public void OnUpload(Object sender, EventArgs e)



{



// 从输入文件中创建一个 byte[]



int len = Upload.PostedFile.ContentLength;



    byte[] pic = new byte[len];



    Upload.PostedFile.InputStream.Read (pic, 0, len);



// 插入图片和说明到数据库中



SqlConnection connection = new



     SqlConnection (@"server=INDIA\INDIA;database=iSense;uid=sa;pwd=india");



    try



    {



        connection.Open ();



        SqlCommand cmd = new SqlCommand ("insert into Image "



          + "(Picture, Comment) values (@pic, @text)", connection);



        cmd.Parameters.Add ("@pic", pic);



        cmd.Parameters.Add ("@text", Comment.Text);



        cmd.ExecuteNonQuery ();



    }



    finally



    {



        connection.Close ();



    }



}



上面创建的函数可以通过使用按钮的 onClick 属性来调用。
如何使用ADO.NET技术从数据库中读取图片并把它显示在Web页面上?
这里,我使用Web页面来显示图片,而没有用其他任何控件。下面的代码是用来显示数据库中的图片。

private void Page_Load(object sender, System.EventArgs e)



{



    MemoryStream stream = new MemoryStream ();



    SqlConnection connection = new



      SqlConnection (@"server=INDIA\INDIA;database=iSense;uid=sa;pwd=india");



    try



    {



        connection.Open ();



        SqlCommand command = new



          SqlCommand ("select Picture from Image", connection);



        byte[] image = (byte[]) command.ExecuteScalar ();  



        stream.Write (image, 0, image.Length);



        Bitmap bitmap = new Bitmap (stream);



        Response.ContentType = "image/gif";



        bitmap.Save (Response.OutputStream, ImageFormat.Gif);



    }



    finally



    {



        connection.Close ();



        stream.Close ();



    }



}



GDI+函数为操作和定义图片提供了一个丰富的功能集合。本文的例子只能看到它的一小部分功能。你可以使用 System.Drawing 和 System.Drawing.Imaging 名字空间来调用这些功能。举例来说,你可以开发在Web上保存和管理图片文件的应用程序,或者你可以一个简单、易配置的应用程序使用户能够操作图片。

如何运行程序?



首先,创建一个虚拟目录,把你的工程文件放到这虚拟目录中。然后改变服务器名称,数据库名称以及表的名称,如下所示:

SqlConnection connection = new SqlConnection



        ("server=localhost;database=mypictures;uid=sa;pwd=");



然后公布你的工程以获得最好的结果。

  • 上一篇文档:

  • 下一篇文档:
  •     查找更多“保存图片到SQL 2000 Server数据库”的内容  
    相关连接
  • 如何在DataGrid绑定之前为DataSet添加新列

  • 使用DataReader还是DataSet?

  • Sql与Asp.Net数据类型对应(引用MsDN)

  • SQL查询语句对象化的实现(C#)

  • 在ADO.NET数据集中浏览多个相关表(6篇)(1)