PageSaveData.aspx.cs

using System;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Web.UI.WebControls;

public partial class PageSaveData : System.Web.UI.Page
{

    #region Page_Load
    private static DataView dataView;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            dataView = UserSchema.UserTable.AsDataView();
            gridViewDB.DataSource = dataView;
            gridViewDB.DataBind();
            gridViewDB.Caption = Session["Title"] as string;
        }
        Page.Title = gridViewDB.Caption;
    }
    #endregion

    #region location.href
    protected void btnBack_Click(object sender, EventArgs e)
    {
        Response.Write("<script>window.top.location.href='PageLoadData.aspx'</script>");
    }
    #endregion

    #region PrintToExcel
    protected void btnExcel_Click(object sender, EventArgs e)
    {
        dataView.ToTable().PrintToExcel(gridViewDB.Caption, "用户名", "电子邮件", "内容", "时间");
    }
    #endregion

    #region RowDataBound
    protected void gridViewDB_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            e.Row.Attributes.Add("onmouseover", "bgColor=this.style.backgroundColor;this.style.backgroundColor='violet';this.style.cursor='hand';");
            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=bgColor");
            string value = string.Format("return confirm('确实要删除编号“{0}”吗?');", e.Row.Cells[1].Text);
            e.Row.Cells[5].Attributes.Add("OnClick", value);
        }
    }
    #endregion

    #region CheckedAll
    protected void checkedAll_CheckedChanged(object sender, EventArgs e)
    {
        bool checkedAll = (gridViewDB.HeaderRow.FindControl("checkedAll") as CheckBox).Checked;
        foreach (GridViewRow row in gridViewDB.Rows)
        {
            (row.FindControl("checkedItem") as CheckBox).Checked = checkedAll;
        }
        (gridViewDB.HeaderRow.FindControl("linkButtonAll") as LinkButton).Enabled = checkedAll;
    }
    protected void linkButtonAll_Click(object sender, EventArgs e)
    {
        dataView.Table.Clear();
        gridViewDB.DataSource = dataView;
        gridViewDB.DataBind();
    }
    #endregion

    #region GridView.Events
    protected void gridViewDB_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        gridViewDB.PageIndex = e.NewPageIndex;
        gridViewDB.DataSource = dataView;
        gridViewDB.DataBind();
    }

    protected void gridViewDB_RowEditing(object sender, GridViewEditEventArgs e)
    {
        gridViewDB.EditIndex = e.NewEditIndex;
        gridViewDB.DataSource = dataView;
        gridViewDB.DataBind();
    }

    protected void gridViewDB_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        gridViewDB.EditIndex = -1;
        gridViewDB.DataSource = dataView;
        gridViewDB.DataBind();
    }
    #endregion

    #region UpdateRow
    protected void gridViewDB_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        if (dataView.Count < 0)
        {
            e.Cancel = true;
            return;
        }
        DataRow updateRow = dataView[gridViewDB.Rows[e.RowIndex].DataItemIndex].Row;
        try
        {
            updateRow.BeginEdit();
            GridViewRow row = gridViewDB.Rows[e.RowIndex];
            updateRow.SetField<string>("UserEmail", (row.FindControl("UserEmail") as TextBox).Text);
            updateRow.SetField<string>("Content", (row.FindControl("Content") as TextBox).Text);
            updateRow.SetField<DateTime>("SendTime", (row.FindControl("SendTime") as Calendar).SelectedDate);
            updateRow.EndEdit();
            btnSave.Enabled = true;
        }
        catch (Exception se)
        {
            Response.Write(se.Message);
            updateRow.ClearErrors();
            updateRow.CancelEdit();
        }
        finally
        {
            gridViewDB.EditIndex = -1;
            gridViewDB.DataSource = dataView;
            gridViewDB.DataBind();
        }
    }

    protected void gridViewDB_RowUpdated(object sender, GridViewUpdatedEventArgs e)
    {
        if (e.Exception != null)
        {
            Response.Write(e.Exception.Message);
            e.ExceptionHandled = true;
        }
    }
    #endregion

    #region DeleteRow
    protected void gridViewDB_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        if (dataView.Count < 0)
        {
            e.Cancel = true;
            return;
        }
        DataRow deleteRow = dataView[gridViewDB.Rows[e.RowIndex].DataItemIndex].Row;
        try
        {
            deleteRow.Delete();
            btnSave.Enabled = true;
        }
        catch (Exception se)
        {
            Response.Write(se.Message);
            deleteRow.ClearErrors();
            deleteRow.RejectChanges();
        }
        finally
        {
            gridViewDB.DataSource = dataView;
            gridViewDB.DataBind();
        }
    }

    protected void gridViewDB_RowDeleted(object sender, GridViewDeletedEventArgs e)
    {
        if (e.Exception != null)
        {
            Response.Write(e.Exception.Message);
            e.ExceptionHandled = true;
        }
    }
    #endregion

    #region SavaData
    protected void btnSave_Click(object sender, EventArgs e)
    {
        switch (gridViewDB.Caption)
        {
            case "XML数据库":
                FileInfo info = new FileInfo(Server.MapPath("~/App_Data/User.xml"));
                if (info.Exists)
                    info.Attributes = FileAttributes.Normal;
                using (StreamWriter writer = info.CreateText())
                {
                    dataView.Table.AcceptChanges();
                    dataView.Table.WriteXml(writer, XmlWriteMode.IgnoreSchema);
                }
                break;
            case "Access数据库":
                try
                {
                    DataTable table = dataView.Table.GetChanges();
                    if (table == null)
                        return;
                    using (OleDbDataAdapter adapter = new OleDbDataAdapter())
                    {
                        OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder();
                        builder.Provider = "Microsoft.ACE.OLEDB.12.0";
                        builder.DataSource = @"|DataDirectory|User.accdb";
                        builder["Jet OLEDB:Database Password"] = "jinzhexian";
                        OleDbCommand cmd = new OleDbConnection(builder.ConnectionString).CreateCommand();
                        cmd.CommandText = "delete from [User] where UserName=?";
                        cmd.Parameters.Add("@UserName", OleDbType.VarWChar, 20, "UserName");
                        adapter.DeleteCommand = cmd;
                        cmd = cmd.Clone();
                        cmd.CommandText = "insert into [User] values(?,?,?,?)";
                        cmd.Parameters.Add("@UserEmail", OleDbType.VarWChar, 50, "UserEmail");
                        cmd.Parameters.Add("@Content", OleDbType.VarWChar, 255, "Content");
                        cmd.Parameters.Add("@SendTime", OleDbType.DBDate, 8, "SendTime");
                        adapter.InsertCommand = cmd;
                        cmd = cmd.Clone();
                        cmd.CommandText = "update [User] set UserEmail=?,Content=?,SendTime=? where UserName=?";
                        cmd.Parameters.RemoveAt("@UserName");
                        cmd.Parameters.Add("@UserName", OleDbType.VarWChar, 20, "UserName");
                        adapter.UpdateCommand = cmd;
                        adapter.Update(table);
                        dataView.Table.AcceptChanges();
                    }
                }
                catch (Exception se)
                {
                    Response.Write(se.Message);
                }
                break;
        }
        gridViewDB.DataSource = dataView;
        gridViewDB.DataBind();
        btnSave.Enabled = false;
    }
    #endregion
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值