ASP.NET2.0中将文件上传到数据库
来源:互联网 发布:手机看工程图纸软件 编辑:程序博客网 时间:2024/06/10 01:38
此问题经常被人问,本文列出将文字和图片上传到数据库的方法。包括Access数据库和SQL Server数据库。
Access数据库代码
<%@ Page Language="C#" EnableViewState="true" %><%@ Import Namespace="System.Data.OleDb" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> protected void Button1_Click( object sender, EventArgs e ) { System.IO.Stream fileDataStream = FileUpload1.PostedFile.InputStream; if (fileDataStream.Length < 1) { Msg.Text = "请选择文件。"; return; } //得到文件大小 int fileLength = FileUpload1.PostedFile.ContentLength; //创建数组 byte[] fileData = new byte[fileLength]; //把文件流填充到数组 fileDataStream.Read(fileData, 0, fileLength); //得到文件类型 string fileType = FileUpload1.PostedFile.ContentType; //构建数据库连接,SQL语句,创建参数 string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Image2Access.mdb"); OleDbConnection myConnection = new OleDbConnection(strCnn); OleDbCommand command = new OleDbCommand("INSERT INTO Person (PersonName,PersonEmail,PersonSex,PersonImageType,PersonImage)" + "VALUES (@PersonName,@PersonEmail,@PersonSex,@PersonImageType,@PersonImage)", myConnection); command.Parameters.AddWithValue("@PersonName",TextBox1.Text); command.Parameters.AddWithValue("@PersonEmail", "mengxianhui@dotnet.aspx.cc"); command.Parameters.AddWithValue("@paramPersonSex", "男"); command.Parameters.AddWithValue("@PersonImageType", fileType); command.Parameters.AddWithValue("@PersonImage", fileData); //打开连接,执行查询 myConnection.Open(); command.ExecuteNonQuery(); myConnection.Close(); Response.Redirect(Request.RawUrl); } protected void Page_Load( object sender, EventArgs e ) { if (!Page.IsPostBack) { BindGrid(); } } private void BindGrid( ) { string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Image2Access.mdb"); OleDbConnection myConnection = new OleDbConnection(strCnn); OleDbCommand myCommand = new OleDbCommand("SELECT * FROM Person", myConnection); try { myConnection.Open(); GridView1.DataSource = myCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection); GridView1.DataBind(); } catch (OleDbException SQLexc) { Response.Write("提取数据时出现错误:" + SQLexc.ToString()); } } protected string FormatURL( object strArgument ) { return "ReadImage.aspx?id=" + strArgument.ToString(); } </script><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>上传文件到数据库</title></head><body> <form id="MengXianhui" runat="server"> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"> <Columns> <asp:TemplateField> <ItemTemplate> <%#Eval("PersonName") %> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <%#Eval("PersonEmail") %> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <%#Eval("PersonSex") %> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <img src="<%#FormatURL(Eval("PersonID")) %>" /></ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <br /> <br /> 姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> 照片:<asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="Button1_Click"></asp:Button> <p> <asp:Label ID="Msg" runat="server" ForeColor="Red"></asp:Label></p> </form></body></html>
SQL Server数据库代码
<%@ Page Language="C#" EnableViewState="true" %><%@ Import Namespace="System.Data.SqlClient" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> string strCnn = "Persist Security Info=False;User ID=sa;Password=;Initial Catalog=Book;Server=(local);"; protected void Button1_Click( object sender, EventArgs e ) { System.IO.Stream fileDataStream = FileUpload1.PostedFile.InputStream; if (fileDataStream.Length < 1) { Msg.Text = "请选择文件。"; return; } //得到文件大小 int fileLength = FileUpload1.PostedFile.ContentLength; //创建数组 byte[] fileData = new byte[fileLength]; //把文件流填充到数组 fileDataStream.Read(fileData, 0, fileLength); //得到文件类型 string fileType = FileUpload1.PostedFile.ContentType; //构建数据库连接,SQL语句,创建参数 SqlConnection myConnection = new SqlConnection(strCnn); SqlCommand command = new SqlCommand("INSERT INTO UserPhoto (UserName,ContentType,Photo)" + "VALUES (@UserName,@ContentType,@Photo)", myConnection); command.Parameters.AddWithValue("@UserName", TextBox1.Text); command.Parameters.AddWithValue("@ContentType", fileType); command.Parameters.AddWithValue("@Photo", fileData); //打开连接,执行查询 myConnection.Open(); command.ExecuteNonQuery(); myConnection.Close(); Response.Redirect(Request.RawUrl); } protected void Page_Load( object sender, EventArgs e ) { if (!Page.IsPostBack) { BindGrid(); } } private void BindGrid( ) { SqlConnection myConnection = new SqlConnection(strCnn); SqlCommand myCommand = new SqlCommand("SELECT * FROM UserPhoto Order By id DESC", myConnection); try { myConnection.Open(); GridView1.DataSource = myCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection); GridView1.DataBind(); } catch (Exception SQLexc) { Response.Write("提取数据时出现错误:" + SQLexc.ToString()); } } protected string FormatURL( object strArgument ) { return "ReadImage.aspx?id=" + strArgument.ToString(); } </script><html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server"> <title>上传文件到数据库</title></head><body> <form id="MengXianhui" runat="server"> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"> <Columns> <asp:TemplateField> <ItemTemplate> <%#Eval("UserName") %> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <img src="<%#FormatURL(Eval("id")) %>" /></ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <br /> <br /> 姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> 照片:<asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="Button1_Click"></asp:Button> <p> <asp:Label ID="Msg" runat="server" ForeColor="Red"></asp:Label></p> </form></body></html>
显示图片
<%@ Page Language="C#" %><%@ Import Namespace="System.Data.OleDb" %><%@ Import Namespace="System.Data.SqlClient" %><script runat="server"> protected void Page_Load( object sender, EventArgs e ) { ////构建数据库连接,SQL语句,创建参数 //ACCESS数据库使用本注释部分 //string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Image2Access.mdb"); //OleDbConnection myConnection = new OleDbConnection(strCnn); //OleDbCommand command = new OleDbCommand("select * from Person Where PersonID =" + Request.QueryString["id"], myConnection); //myConnection.Open(); //OleDbDataReader dr = command.ExecuteReader(); //if (dr.Read()) //{ // Response.Clear(); // Response.AddHeader("Content-Type", dr["PersonImageType"].ToString()); // Response.BinaryWrite((byte[])dr["PersonImage"]); //} //dr.Close(); //myConnection.Dispose(); //构建数据库连接,SQL语句,创建参数 string strCnn = "Persist Security Info=False;User ID=sa;Password=;Initial Catalog=Book;Server=(local);"; SqlConnection myConnection = new SqlConnection(strCnn); SqlCommand command = new SqlCommand("select * from UserPhoto Where id =" + Request.QueryString["id"], myConnection); myConnection.Open(); SqlDataReader dr = command.ExecuteReader(); if (dr.Read()) { Response.Clear(); Response.AddHeader("Content-Type", dr["ContentType"].ToString()); Response.BinaryWrite((byte[])dr["Photo"]); } dr.Close(); myConnection.Dispose(); }</script>
创建SQL数据表语句
CREATE TABLE [UserPhoto] ( [id] [int] IDENTITY (1, 1) NOT NULL , [UserName] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL , [ContentType] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , [Photo] [image] NOT NULL , CONSTRAINT [PK_UserPhoto] PRIMARY KEY CLUSTERED ( [id] ) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]GO
原文地址:http://dotnet.aspx.cc/article/17612afb-3fc0-4fb9-bfa9-00cba28336e9/read.aspx
- ASP.NET2.0中将文件上传到数据库
- ASP.NET2.0中将文件上传到数据库
- ASP.NET2.0中将文件上传到数据库
- ASP.NET2.0中将文件上传到数据库
- ASP.NET2.0中将文件上传到数据库(copy from JREN)
- ASP.NET2.0中将文件、图片上传到数据库(已试)
- ASP.NET2.0中将文件上传到Access数据库的代码、从数据库显示图片的代码=
- ASP.NET2.0中将GridView导出到Excel文件中
- ASP.NET2.0中将GridView导出到Excel文件中
- ASP.NET2.0中将GridView导出到Excel文件中
- asp.net2.0上传文件
- asp.net2.0上传文件
- ASP.NET2.0中将数据库字段中存储的文件显示出来
- asp.net2.0 多文件压缩上传
- ASP.NET2.0文件图片上传C#
- ASP.NET 中将文件上传到另外一个服务器
- ASP.NET2.0绑定到数据库
- asp.net2.0实现文件上传,控制上传文件大小,类型
- hdu 1248
- Iphone 关于UITextView 限制单行的解决办法。。
- 创建 ARM Linux 交叉编译环境
- PHP PDO扩展 ----- PDOstatement
- 文件上传相关代码及解释 java web
- ASP.NET2.0中将文件上传到数据库
- 感悟
- 13.3.1 实现 XML 辅助函数
- Java NIO编程关注点
- 通往java高手之路
- 系统库按时间生成IO TOP SQL语句(08点-11点)
- mysql反向解析导致连接慢的问题
- memset()的效率以及源码分析
- centos CR repo