Access存储图片(OLE对象)

Image2Access.aspx

<%&#64; Page language="c#" Debug="true" Codebehind="Image2Access.aspx.cs" AutoEventWireup="false" Inherits="eMeng.Exam.Image2Access" %> <!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html> <head> <title>上传文件到 Access 数据库</title> <meta name="GENERATOR" content="Microsoft Visual Studio 7.0" /> <meta name="CODE_LANGUAGE" content="C#" /> <meta name="vs_defaultClientScript" content="JavaScript" /> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5" /> </head> <body ms_positioning="GridLayout"> <form id="DataGridShowImage" method="post" runat="server" enctype="multipart/form-data"> <h3 align="center">上传文件到 Access 数据库</h3> <asp:DataGrid ID="DG_Persons" AutoGenerateColumns="False" Width="99%" HeaderStyle-BackColor="#ff0000" HeaderStyle-Font-Bold="True" HeaderStyle-ForeColor="#ffffff" ItemStyle-BackColor="Beige" BorderColor="#000000" Runat="server" HeaderStyle-HorizontalAlign="Center"> <columns> <asp:TemplateColumn headertext="姓名"> <itemtemplate> <asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonName") %>' ID="Label1"/> </itemtemplate> </asp:TemplateColumn> <asp:TemplateColumn headertext="电子邮件"> <itemtemplate> <asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonEmail") %>' ID="Label2"/> </itemtemplate> </asp:TemplateColumn> <asp:TemplateColumn headertext="性别"> <itemtemplate> <asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonSex") %>' ID="Label3"/> </itemtemplate> </asp:TemplateColumn> <asp:TemplateColumn headertext="照片"> <itemtemplate> <asp:Image Runat=server ID="Image1" ImageUrl='<%# FormatURL(DataBinder.Eval(Container.DataItem, "PersonID")) %>' /> </itemtemplate> </asp:TemplateColumn> </columns> </asp:DataGrid> <strong>文件名字:</strong><input id="MyFileName" type="text" runat="server" NAME="MyFileName" /> <p> <strong>文件:</strong><input id="MyFile" type="file" runat="server" NAME="MyFile" /> <br /> <br /> <input type="submit" value="开始上传" runat="server" ID="Submit1" NAME="Submit1" /> </p> </form> </body> </html>

Image2Access.aspx.cs

using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Data.OleDb; using System.Drawing; using System.Web; using System.IO; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace eMeng.Exam { /// <summary> /// Image2Access 的摘要说明。 /// </summary> public class Image2Access : System.Web.UI.Page { protected System.Web.UI.HtmlControls.HtmlInputText MyFileName; protected System.Web.UI.HtmlControls.HtmlInputFile MyFile; protected System.Web.UI.HtmlControls.HtmlInputButton Submit1; protected System.Web.UI.WebControls.DataGrid DG_Persons; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 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); myCommand.CommandType = CommandType.Text; try { myConnection.Open(); DG_Persons.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection); DG_Persons.DataBind(); } catch(OleDbException SQLexc) { Response.Write("提取数据时出现错误:" + SQLexc.ToString()); } } protected string FormatURL(object strArgument) { return "ReadImage.aspx?id=" + strArgument.ToString(); } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Submit1.ServerClick += new System.EventHandler(this.Submit1_ServerClick); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void Submit1_ServerClick(object sender, System.EventArgs e) { //得到提交的文件 Stream fileDataStream = MyFile.PostedFile.InputStream; //得到文件大小 int fileLength = MyFile.PostedFile.ContentLength; //创建数组 byte[] fileData = new byte[fileLength]; //把文件流填充到数组 fileDataStream.Read(fileData,0,fileLength); //得到文件名字 string fileTitle = MyFileName.Value; //得到文件类型 string fileType = MyFile.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 (&#64;PersonName,&#64;PersonEmail,&#64;PersonSex,&#64;PersonImageType,&#64;PersonImage)", myConnection); System.Data.OleDb.OleDbParameter paramPersonName = new OleDbParameter("&#64;PersonName", System.Data.OleDb.OleDbType.VarChar,50); paramPersonName.Value = fileTitle; command.Parameters.Add(paramPersonName); System.Data.OleDb.OleDbParameter paramPersonEmail = new OleDbParameter("&#64;PersonEmail", System.Data.OleDb.OleDbType.VarChar,50); paramPersonEmail.Value = "mengxianhui&#64;dotnet.aspx.cc"; command.Parameters.Add(paramPersonEmail); System.Data.OleDb.OleDbParameter paramPersonSex = new OleDbParameter("&#64;paramPersonSex", System.Data.OleDb.OleDbType.VarChar,50); paramPersonSex.Value = "男"; command.Parameters.Add(paramPersonSex); System.Data.OleDb.OleDbParameter paramPersonImageType = new OleDbParameter("&#64;PersonImageType", System.Data.OleDb.OleDbType.VarChar,50); paramPersonImageType.Value = fileType; command.Parameters.Add(paramPersonImageType); System.Data.OleDb.OleDbParameter paramPersonImage = new OleDbParameter("&#64;PersonImage", System.Data.OleDb.OleDbType.Binary); paramPersonImage.Value = fileData; command.Parameters.Add(paramPersonImage); //打开连接,执行查询 myConnection.Open(); command.ExecuteNonQuery(); myConnection.Close(); } } }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值