首页 > 数据库 > Access > 正文

C#向ACCESS数据库插入图片

2020-03-24 18:52:01
字体:
来源:转载
供稿:网友
%@ 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
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" html' target='_blank'>value="开始上传" runat="server" ID="Submit1" NAME="Submit1"
/P
/form
/body
/HTML
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 窗体设计器生成的代码 http://sucai.knowsky.com/
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 (@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 = "mengxianhui@dotnet.aspx.cc";
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();


}
}
}
本文作者:html教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表