使用 SqlDataSource 控件操作 Access 数据库

<%@ 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">
        &nbsp;<br />
        <br />
        <br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <br />
        &nbsp;&nbsp;<br />
        <br />
        <br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
        &nbsp;<br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        &nbsp;&nbsp; <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
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值