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

asp.net|server|数据|数据库

    SQL Server提供了一个特别的数据类型:image,它是一个包含binary数据的类型。下边这个例子就向你展示了如何将文本或照片放入到数据库中的办法。在这篇文章中我们要看到如何在SQL Server中存储和读取图片。 
   
     1、建立一个表:
  
    在SQL SERVER中建立这样结构的一个表:
  
  列名 类型 目的
  ID Integer 主键ID
  IMGTITLE Varchar(50) 图片的标题
  IMGTYPE Varchar(50) 图片类型. ASP.net要以辨认的类型
  IMGDATA Image 用于存储二进制数据
  
    2、存储图片到SQL SERVER数据库中
  
    为了能存储到表中,你首先要上传它们到你的Web 服务器上,你可以开发一个web form,它用来将客户端中TextBox web control中的图片入到你的WEB服务器上来。将你的 encType 属性设置为:myltipart/formdata. 
   
  Stream imgdatastream = File1.PostedFile.InputStream;
  int imgdatalen = File1.PostedFile.ContentLength;
  string imgtype = File1.PostedFile.ContentType;
  string imgtitle = TextBox1.Text;
  byte[] imgdata = new byte[imgdatalen];
  int n = imgdatastream.Read(imgdata,0,imgdatalen);
  string connstr=((NameValueCollection)Context.GetConfig("appSettings"))["connstr"];
  
  SqlConnection connection = new SqlConnection(connstr);
  
  SqlCommand command = new SqlCommand
           ("INSERT INTO ImageStore(imgtitle,imgtype,imgdata)
           VALUES ( @imgtitle, @imgtype,@imgdata )", connection );
  
  SqlParameter paramTitle = new SqlParameter
           ("@imgtitle", SqlDbType.VarChar,50 );
  
  paramTitle.Value = imgtitle;
  command.Parameters.Add( paramTitle);
  
  SqlParameter paramData = new SqlParameter( "@imgdata", SqlDbType.Image );
  paramData.Value = imgdata;
  command.Parameters.Add( paramData );
  
  SqlParameter paramType = new SqlParameter( "@imgtype", SqlDbType.VarChar,50 );
  paramType.Value = imgtype;
  command.Parameters.Add( paramType );
  
  connection.Open();
  int numRowsAffected = command.ExecuteNonQuery();
  connection.Close();
  
    3、从数据库中恢复读取
  
    现在让我们来从SQL Server中读取我们放入的数据吧!我们将要输出图片到你的浏览器上,你也可以将它存放到你要的位置。
  
  private void Page_Load(object sender, System.EventArgs e)
  {
   string imgid =Request.QueryString["imgid"];
   string connstr=((NameValueCollection)
   Context.GetConfig("appSettings"))["connstr"];
   string sql="SELECT imgdata, imgtype FROM ImageStore WHERE id = " + imgid;
   SqlConnection connection = new SqlConnection(connstr);
   SqlCommand command = new SqlCommand(sql, connection);
   connection.Open();
   SqlDataReader dr = command.ExecuteReader();
   if(dr.Read())
   {
    Response.ContentType = dr["imgtype"].ToString();
    Response.BinaryWrite( (byte[]) dr["imgdata"] );
   }
   connection.Close();
  }
  
    要注意的是Response.BinaryWrite 而不是Response.Write.
  
    下面给大家一个用于C# Winform的存入、读取程序。其中不同请大家自己比较!(为了方便起见,我将数据库字段简化为二个:imgtitle和imgdata。
  
  using System;
  using System.Drawing;
  using System.Collections;
  using System.ComponentModel;
  using System.Windows.Forms;
  using System.Data;
  using System.IO;
  using System.Data.SqlClient;
  
  namespace WindowSAPplication21
  {
   /// <summary>
   /// Form1 的摘要说明。
   /// </summary>
   public class Form1 : System.Windows.Forms.Form
   {
    private System.Windows.Forms.Button button1;
    /// <summary>
    /// 必需的设计器变量。
    /// </summary>
    private System.ComponentModel.Container components = null;
    private string ConnectionString = "Integrated Security=SSPI;Initial Catalog=;Data Source=localhost;";
    private SqlConnection conn = null;
    private SqlCommand cmd = null;
    private System.Windows.Forms.Button button2;
    private System.Windows.Forms.PictureBox pic1;
    private System.Windows.Forms.OpenFileDialog openFileDialog1;
    private string sql = null;
    private System.Windows.Forms.Label label2;
    private string nowId=null;
  
   public Form1()
   {
    //
    // Windows 窗体设计器支持所必需的
    //
    InitializeComponent();
    conn = new SqlConnection(ConnectionString);
  
    //
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
    //
   }
  
   /// <summary>
   /// 清理所有正在使用的资源。
   /// </summary>
   protected override void Dispose( bool disposing )
   {
    if (conn.State == ConnectionState.Open)
     conn.Close();
    if( disposing )
    {
     if (components != null)
     {
      components.Dispose();
     }
    }
    base.Dispose( disposing );
  
   }
 

[1] [2] 下一页  

时间: 2024-12-29 02:56:44

ASP.NET如何存取SQL Server数据库图片的相关文章

ASP.NET中存取SQL Server数据库中的图片

SQL Server提供了一个特别的数据类型:image,它是一个包含binary数据的类型.下边这个例子就向你展示了如何将文本或照片放入到数据库中的办法.在这篇文章中我们要看到如何在SQL Server中存储和读取图片. 1.建立一个表: 在SQL SERVER中建立这样结构的一个表: 列名 类型 目的 ID Integer 主键ID IMGTITLE Varchar(50) 图片的标题 IMGTYPE Varchar(50) 图片类型. ASP.NET要以辨认的类型 IMGDATA Imag

ASP.NET备份恢复Sql Server数据库

本文将向大家介绍如何使用 ASP.NET 备份恢复 Sql Server 数据库,大家可以做个参考,也希望对大家有所帮助. 备份SqlServer数据库: string SqlStr1 = "Server=(local);database='" + this.DropDownList1.SelectedValue + "';Uid=sa;Pwd=";string SqlStr2 = "backup database " + this.DropDo

ASP语言实现对SQL SERVER数据库的操作_应用技巧

目前管理信息系统已从传统的客户机/服务器(C/S)模式转向了浏览器/服务器(B/S)模式,特别是微软公司推出它的新产品ASP语言之后,这种转变更加迅猛.管理信息系统的核心是对数据库进行包括添加.修改和查询等等操作,ASP提供的ADO数据库接口控件,使得程序员再也勿需编写复杂的CGI程序了,而只要用几句简单的语句即可实现以上操作.1.系统环境 PII 350,Ram 64M,WINNT Server 4.0, Service Pack4, IIS 4.0, SQL Server7.0. 2.系统功

ASP语言实现对SQL SERVER数据库的操作

目前管理信息系统已从传统的客户机/服务器(C/S)模式转向了浏览器/服务器(B/S)模式,特别是微软公司推出它的新产品ASP语言之后,这种转变更加迅猛.管理信息系统的核心是对数据库进行包括添加.修改和查询等等操作,ASP提供的ADO数据库接口控件,使得程序员再也勿需编写复杂的CGI程序了,而只要用几句简单的语句即可实现以上操作.1.系统环境 PII 350,Ram 64M,WINNT Server 4.0, Service Pack4, IIS 4.0, SQL Server7.0. 2.系统功

用ASP语言实现对SQL SERVER 数据库的操作

目前管理信息系统已从传统的客户机/服务器(C/S)模式转向了浏览器/服务器(B/S)模式,特别是微软公司推出它的新产品ASP语言之后,这种转变更加迅猛.管理信息系统的核心是对数据库进行包括添加.修改和查询等等操作,ASP提供的ADO数据库接口控件,使得程序员再也勿需编写复杂的CGI程序了,而只要用几句简单的语句即可实现以上操作.目前有很多介绍用ASP开发网络数据库的程序例子,但绝大部分是利用ACCESS作底层数据库.相对于ACCESS而言,SQL SERVER数据库系统要复杂得多,因此在程序开发

ASP.NET2.0连接SQL Server数据库详解

asp.net|server|数据|数据库|详解 本文将详细介绍如何使用Connection对象连接数据库.对 本文将详细介绍如何使用Connection对象连接数据库.对于不同的.NET数据提供者,ADO.NET采用不同的Connection对象连接数据库.这些Connection对象为我们屏蔽了具体的实现细节,并提供了一种统一的实现方法. Connection类有四种:SqlConnection,OleDbConnection,OdbcConnection和OracleConnection.

C#存取SQL Server数据库之一:二进制存取图片文件

创建项目 1.      添加一个名为RWTest的表到 SQL Server MYTest 数据库. 表字段设置如下:  a.      唯一标识字段名称为"ID",类型为Int.  b.       名称为"Description"的VarChar类型的字段,字段长度为50.  c.      名称为"ImgField" 的Image 类型的字段. 2.      启动 Visual Studio .NET, 并创建一个新的 Visual C

C#存取SQL Server数据库之二:利用序列化进行类链表存取(ArrayList,varbina

创建项目 1.      添加一个名为RWTest的表到 SQL Server MYTest 数据库. 表字段设置如下:  a.      唯一标识字段名称为"ID",类型为Int.  b.       名称为"Description"的VarChar类型的字段,字段长度为50.  c.      名称为"Data" 的varbinary(Max) 类型的字段. 2.      启动 Visual Studio .NET, 并创建一个新的 Vis

ASP.NET中备份SQL Server数据库的方法

前言:我们在开发网站时,在管理后台,管理员通常要定期对数据库进行备份(当然也可以让sqlserver服务器定期自动备份,但我此处讲的是asp.net中的备份),备份的代码很简单: 下面是我做一个网站后台时在"备份"按扭下写的一个事件: protected void Button1_Click(object sender, EventArgs e) ...{ string newname = "WebJake" + DateTime.Now.Year.ToString