PageImageAccess.aspx.cs

本文介绍了如何使用ASP.NET创建数据库、上传图像、删除和选择图像的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Text.RegularExpressions;
using System.Web.UI;
using System.Web.UI.WebControls;
using Access = Microsoft.Office.Interop.Access;
// 添加引用->.NET-> dao,Microsoft.Office.Interop.Access

public partial class PageImageAccess : System.Web.UI.Page
{
    #region OnInit
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        string dbPath = Server.MapPath("~/App_Data/Image.mdb");
        if (!File.Exists(dbPath))
        {
            Access.Application newAccess = new Access.Application();
            newAccess.NewCurrentDatabase(dbPath);
            dao.Database db = newAccess.CurrentDb();
            db.Execute("create table [Images] (Image_Name Text primary key, Image_Type Text, Image_Data Image)", Type.Missing);
            db.NewPassword("", "jinzhexian");
            db.Close();
            newAccess.Quit(Access.AcQuitOption.acQuitSaveNone);
            newAccess = null;
            GC.Collect();
            Response.End();
        }
    }
    #endregion

    #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();
        }
        bool flag = (dropDownListName.Items.Count > 0);
        btnDelete.Enabled = flag;
        btnSelect.Enabled = flag;
    }
    #endregion

    #region FileUpload
    protected void btnUpLoad_Click(object sender, EventArgs e)
    {
        string name = fileUpload.FileName;
        if (!Regex.IsMatch(Path.GetExtension(name), @".(bmp|gif|jpg|png)", RegexOptions.IgnoreCase))
            return;
        if (dropDownListName.Items.FindByText(name) != null)
        {
            Response.Write(string.Format("图片名称“{0}”已存在!", name));
            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
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值