1
<%...@ Page language="c#" Debug="true" Codebehind="Image2Access.aspx.cs"
2
AutoEventWireup="false" Inherits="eMeng.Exam.Image2Access" %>
3
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
4
<HTML>
5
<HEAD>
6
<title>上传文件到 Access 数据库</title>
7
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
8
<meta name="CODE_LANGUAGE" Content="C#">
9
<meta name="vs_defaultClientScript" content="JavaScript">
10
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
11
</HEAD>
12
<body MS_POSITIONING="GridLayout">
13
<form id="DataGridShowImage" method="post" runat="server" enctype="multipart/form-data">
14
<h3 align="center">上传文件到 Access 数据库</h3>
15
<asp:DataGrid ID="DG_Persons" AutoGenerateColumns="False" Width="99%" HeaderStyle-BackColor="#ff0000"
16
HeaderStyle-Font-Bold="True" HeaderStyle-ForeColor="#ffffff" ItemStyle-BackColor="Beige" BorderColor="#000000"
17
Runat="server" HeaderStyle-HorizontalAlign="Center">
18
<Columns>
19
<asp:TemplateColumn HeaderText="姓名">
20
<ItemTemplate>
21
<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonName") %>' ID="Label1"/>
22
</ItemTemplate>
23
</asp:TemplateColumn>
24
<asp:TemplateColumn HeaderText="电子邮件">
25
<ItemTemplate>
26
<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonEmail") %>' ID="Label2"/>
27
</ItemTemplate>
28
</asp:TemplateColumn>
29
<asp:TemplateColumn HeaderText="性别">
30
<ItemTemplate>
31
<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonSex") %>' ID="Label3"/>
32
</ItemTemplate>
33
</asp:TemplateColumn>
34
<asp:TemplateColumn HeaderText="照片">
35
<ItemTemplate>
36
<asp:Image Runat=server ID="Image1"
37
ImageUrl='<%# FormatURL(DataBinder.Eval(Container.DataItem, "PersonID")) %>' />
38
</ItemTemplate>
39
</asp:TemplateColumn>
40
</Columns>
41
</asp:DataGrid>
42
<b>文件名字:</b><input id="MyFileName" type="text" runat="server" NAME="MyFileName">
43
<P>
44
<b>文件:</b><input id="MyFile" type="file" runat="server" NAME="MyFile">
45
<br>
46
<br>
47
<input type="submit" value="开始上传" runat="server" ID="Submit1" NAME="Submit1">
48
</P>
49
</form>
50
</body>
51
</HTML>
52
53
1
using System;
2
using System.Collections;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Data.OleDb;
6
using System.Drawing;
7
using System.Web;
8
using System.IO;
9
using System.Web.SessionState;
10
using System.Web.UI;
11
using System.Web.UI.WebControls;
12
using System.Web.UI.HtmlControls;
13
14
namespace eMeng.Exam
15
...{
16
/**//// <summary>
17
/// Image2Access 的摘要说明。
18
/// </summary>
19
public class Image2Access : System.Web.UI.Page
20
...{
21
protected System.Web.UI.HtmlControls.HtmlInputText MyFileName;
22
protected System.Web.UI.HtmlControls.HtmlInputFile MyFile;
23
protected System.Web.UI.HtmlControls.HtmlInputButton Submit1;
24
protected System.Web.UI.WebControls.DataGrid DG_Persons;
25
26
private void Page_Load(object sender, System.EventArgs e)
27
...{
28
// 在此处放置用户代码以初始化页面
29
BindGrid();
30
}
31
private void BindGrid()
32
...{
33
string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
34
+ Server.MapPath("Image2Access.mdb");
35
OleDbConnection myConnection = new OleDbConnection(strCnn);
36
OleDbCommand myCommand = new OleDbCommand("SELECT * FROM Person", myConnection);
37
myCommand.CommandType = CommandType.Text;
38
try
39
...{
40
myConnection.Open();
41
DG_Persons.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
42
DG_Persons.DataBind();
43
}
44
catch(OleDbException SQLexc)
45
...{
46
Response.Write("提取数据时出现错误:" + SQLexc.ToString());
47
}
48
}
49
protected string FormatURL(object strArgument)
50
...{
51
return "ReadImage.aspx?id=" + strArgument.ToString();
52
}
53
54
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
55
override protected void OnInit(EventArgs e)
56
...{
57
//
58
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
59
//
60
InitializeComponent();
61
base.OnInit(e);
62
}
63
64
/**//// <summary>
65
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
66
/// 此方法的内容。
67
/// </summary>
68
private void InitializeComponent()
69
...{
70
this.Submit1.ServerClick += new System.EventHandler(this.Submit1_ServerClick);
71
this.Load += new System.EventHandler(this.Page_Load);
72
73
}
74
#endregion
75
76
private void Submit1_ServerClick(object sender, System.EventArgs e)
77
...{
78
//得到提交的文件
79
Stream fileDataStream = MyFile.PostedFile.InputStream;
80
81
//得到文件大小
82
int fileLength = MyFile.PostedFile.ContentLength;
83
84
//创建数组
85
byte[] fileData = new byte[fileLength];
86
87
//把文件流填充到数组
88
fileDataStream.Read(fileData,0,fileLength);
89
90
//得到文件名字
91
string fileTitle = MyFileName.Value;
92
93
//得到文件类型
94
string fileType = MyFile.PostedFile.ContentType;
95
96
//构建数据库连接,SQL语句,创建参数
97
string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Image2Access.mdb");
98
OleDbConnection myConnection = new OleDbConnection(strCnn);
99
OleDbCommand command = new OleDbCommand ("INSERT INTO Person (PersonName,PersonEmail,PersonSex,PersonImageType,PersonImage)" +
100
"VALUES (@PersonName,@PersonEmail,@PersonSex,@PersonImageType,@PersonImage)", myConnection);
101
102
System.Data.OleDb.OleDbParameter paramPersonName = new OleDbParameter("@PersonName", System.Data.OleDb.OleDbType.VarChar,50);
103
paramPersonName.Value = fileTitle;
104
command.Parameters.Add(paramPersonName);
105
106
System.Data.OleDb.OleDbParameter paramPersonEmail = new OleDbParameter("@PersonEmail", System.Data.OleDb.OleDbType.VarChar,50);
107
paramPersonEmail.Value = "mengxianhui@dotnet.aspx.cc";
108
command.Parameters.Add(paramPersonEmail);
109
110
System.Data.OleDb.OleDbParameter paramPersonSex = new OleDbParameter("@paramPersonSex", System.Data.OleDb.OleDbType.VarChar,50);
111
paramPersonSex.Value = "男";
112
command.Parameters.Add(paramPersonSex);
113
114
System.Data.OleDb.OleDbParameter paramPersonImageType = new OleDbParameter("@PersonImageType", System.Data.OleDb.OleDbType.VarChar,50);
115
paramPersonImageType.Value = fileType;
116
command.Parameters.Add(paramPersonImageType);
117
118
System.Data.OleDb.OleDbParameter paramPersonImage = new OleDbParameter("@PersonImage", System.Data.OleDb.OleDbType.Binary);
119
paramPersonImage.Value = fileData;
120
command.Parameters.Add(paramPersonImage);
121
122
//打开连接,执行查询
123
myConnection.Open();
124
command.ExecuteNonQuery();
125
myConnection.Close();
126
}
127
}
128
}
129