<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PageImageAccess.aspx.cs" Inherits="PageImageAccess" %>
<!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>存储并检索图片</title>
<style type="text/css">
.style4
{
height: 64px;
width: 405px;
}
.style5
{
width: 405px;
}
.style6
{
}
</style>
</head>
<body>
<form id="form1" runat="server" enctype="multipart/form-data">
<div style="text-align:center">
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<table style="width: 48%;">
<tr>
<td class="style5">
<asp:FileUpload
ID="fileUpload" runat="server" style="margin-left: 0px" Width="300px"
Font-Size="Medium" AccessKey="U" Font-Bold="True"
ToolTip="上传图片(Alt+U)" />
</td>
<td class="style6" rowspan="2">
<asp:Button ID="btnUpLoad" runat="server" OnClick="btnUpLoad_Click" Text="上传(L)"
Height="32px" Font-Size="Medium" Width="100px" AccessKey="L" Font-Bold="True"
ToolTip="快捷键(Alt+L)" />
<br />
<asp:Button ID="btnDelete" runat="server" OnClick="btnDelete_Click" Text="删除(D)"
Height="32px" Font-Size="Medium" Width="100px" AccessKey="D" Font-Bold="True"
ToolTip="快捷键(Alt+D)" />
<br />
<asp:Button ID="btnSelect" runat="server" οnclick="btnSelect_Click" Text="查询(S)"
Width="100px" AccessKey="S" Font-Bold="True" Font-Size="Medium"
Height="32px" ToolTip="快捷键(Alt+S)" />
</td>
</tr>
<tr>
<td class="style4">
<asp:DropDownList ID="dropDownListName" runat="server" Font-Size="Medium"
Height="66px" style="margin-bottom: 0px" Width="300px" AccessKey="N"
ToolTip="快捷键(Alt+N)">
</asp:DropDownList>
</td>
</tr>
</table>
<asp:SqlDataSource ID="sqlDSImage" runat="server"
ConnectionString="<%$ ConnectionStrings:AccessImage %>"
ProviderName="<%$ ConnectionStrings:AccessImage.ProviderName %>"
SelectCommand="SELECT * FROM [Images]" oninserting="sqlDSImage_Inserting"></asp:SqlDataSource>
<br />
</div>
</form>
</body>
</html>
using System;
using System.Data;
using System.Data.OleDb;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class PageImageAccess : System.Web.UI.Page
{
#region Page_Load
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
sqlDSImage.SelectCommand = "Select Image_Name from [Images]";
sqlDSImage.SelectCommandType = SqlDataSourceCommandType.Text;
sqlDSImage.FilterExpression = null;
sqlDSImage.DataSourceMode = SqlDataSourceMode.DataReader;
dropDownListName.AppendDataBoundItems = false; // 在绑定数据之前清除列表项。
dropDownListName.DataSourceID = "sqlDSImage";
dropDownListName.DataTextField = "Image_Name";
dropDownListName.DataBind();
if (dropDownListName.Items.Count > 0)
{
btnDelete.Enabled = true;
btnSelect.Enabled = true;
}
}
}
#endregion
#region FileUpload
protected void btnUpLoad_Click(object sender, EventArgs e)
{
if (!fileUpload.HasFile)
return;
if (dropDownListName.Items.FindByText(fileUpload.FileName) != null)
{
Response.Write(string.Format("图片名称“{0}”已存在!", fileUpload.FileName));
return;
}
sqlDSImage.InsertCommand = "insert into [Images] values(?,?,?)";
sqlDSImage.InsertCommandType = SqlDataSourceCommandType.Text;
try
{
sqlDSImage.Insert();
btnDelete.Enabled = true;
btnSelect.Enabled = true;
}
catch
{
return;
}
}
protected void sqlDSImage_Inserting(object sender, SqlDataSourceCommandEventArgs e)
{
OleDbCommand cmd = e.Command as OleDbCommand;
string name = fileUpload.FileName;
cmd.Parameters.Add("@Image_Name", OleDbType.VarWChar, name.Length, "Image_Name").Value = name;
string type = fileUpload.PostedFile.ContentType;
cmd.Parameters.Add("@Image_Type", OleDbType.VarWChar, type.Length, "Image_Type").Value = type;
byte[] bytes = fileUpload.FileBytes;
cmd.Parameters.Add("@Image_Data", OleDbType.LongVarBinary, bytes.Length, "Image_Data").Value = bytes;
dropDownListName.Items.Add(name);
dropDownListName.SelectedValue = name;
}
#endregion
#region DeleteImage
protected void btnDelete_Click(object sender, EventArgs e)
{
sqlDSImage.DeleteCommand = "delete from [Images] where Image_Name=?";
sqlDSImage.DeleteCommandType = SqlDataSourceCommandType.Text;
sqlDSImage.DeleteParameters.Add("Image_Name", TypeCode.String, dropDownListName.SelectedValue);
try
{
sqlDSImage.Delete();
dropDownListName.Items.RemoveAt(dropDownListName.SelectedIndex);
if (dropDownListName.SelectedIndex < 0)
{
btnDelete.Enabled = false;
btnSelect.Enabled = false;
}
}
catch
{
return;
}
}
#endregion
#region SelectImage
protected void btnSelect_Click(object sender, EventArgs e)
{
sqlDSImage.SelectCommand = "Select * from [Images]";
sqlDSImage.SelectCommandType = SqlDataSourceCommandType.Text;
sqlDSImage.FilterExpression = "Image_Name='{0}'";
sqlDSImage.FilterParameters.Add("Image_Name", TypeCode.String, dropDownListName.SelectedValue);
sqlDSImage.DataSourceMode = SqlDataSourceMode.DataSet;
DataView dataView = sqlDSImage.Select(DataSourceSelectArguments.Empty) as DataView;
DataRow dataRow = dataView[0].Row;
Response.ContentType = dataRow.Field<string>("Image_Type");
Response.BinaryWrite(dataRow.Field<byte[]>("Image_Data"));
}
#endregion
}