|
ASP.NET2.0中将文件上传到Access数据库的代码、从数据库显示图片的代码
此问题经常被人问,本文列出将文字和图片上传到数据库的方法。
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);
|