将文字内容和图片插入到 Access 数据库

 

将文字内容和图片插入到 Access 数据库

作者:孟宪会 出自:【孟宪会之精彩世界】 发布日期:2006421 194310

TextPictureIntoAccess.aspx

<%@ Page Language="C#" AutoEventWireup="false" CodeFile="TextPictureIntoAccess.aspx.cs" Inherits="TextPictureIntoAccess" %>

 

DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>上传文件到 Access 数据库title>

head>

<body>

    <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>

<b>文件名字:b><input id="MyFileName" type="text" runat="server" NAME="MyFileName">

<P>

<b>文件:b><input id="MyFile" type="file" runat="server" NAME="MyFile">

<br>

<br>

<input type="submit" value="开始上传" runat="server" ID="Submit1" NAME="Submit1" onserverclick="Submit1_ServerClick">

P>

form>

body>

html>

 

TextPictureIntoAccess.aspx.cs

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

 

public partial class TextPictureIntoAccess : System.Web.UI.Page

{

    protected void Page_Load(object sender, 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();

    }

 

    protected void Submit1_ServerClick(object sender, 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 (@PersonName,@PersonEmail,@PersonSex,@PersonImageType,@PersonImage)", myConnection);

 

        System.Data.OleDb.OleDbParameter paramPersonName = new OleDbParameter("@PersonName", System.Data.OleDb.OleDbType.VarChar,50);

        paramPersonName.Value = fileTitle;

        command.Parameters.Add(paramPersonName);

 

        System.Data.OleDb.OleDbParameter paramPersonEmail = new OleDbParameter("@PersonEmail", System.Data.OleDb.OleDbType.VarChar,50);

        paramPersonEmail.Value = "[email protected]";

        command.Parameters.Add(paramPersonEmail);

 

        System.Data.OleDb.OleDbParameter paramPersonSex = new OleDbParameter("@paramPersonSex", System.Data.OleDb.OleDbType.VarChar,50);

        paramPersonSex.Value = "";

        command.Parameters.Add(paramPersonSex);

 

        System.Data.OleDb.OleDbParameter paramPersonImageType = new OleDbParameter("@PersonImageType", System.Data.OleDb.OleDbType.VarChar,50);

        paramPersonImageType.Value = fileType;

        command.Parameters.Add(paramPersonImageType);

 

        System.Data.OleDb.OleDbParameter paramPersonImage = new OleDbParameter("@PersonImage", System.Data.OleDb.OleDbType.Binary);

        paramPersonImage.Value = fileData;

        command.Parameters.Add(paramPersonImage);

 

        //打开连接,执行查询

        myConnection.Open();

        command.ExecuteNonQuery();

        myConnection.Close();

    }

}

 

你可能感兴趣的:(ASP.NET)