使用Update型触发器时,更新操作包括两部分,即先将更新的内容去掉,然后将新值插入。因此,对于一个定义了update触发器的表来讲,当进行更新操作时,在删除表中存放了旧值,然后在插入表中存放新值
SQL
View Code
/*打开数据库*/ USE db_Tome2 /*判断表中是否有名为“基本工资触发器”的触发器*/ IF EXISTS (SELECT name FROM sysobjects WHERE name = 'trigger_systemLog' AND type = 'TR') /*如果已经存在则删除*/ DROP TRIGGER trigger_systemLog GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO /*创建新的触发器*/ CREATE trigger trigger_systemLog--触发器名称 ON admInfo03 FOR update AS /*参数声明*/ DECLARE @AN varchar(50),@AP varchar(50),@MD datetime /*参数赋值*/ set @MD=getdate() /*应用触发器中的INSERTED表临时存储参数*/ select @AN='用户名:'+admName+'---密码修改为'+admPass From INSERTED /*SQL语句操作*/ insert into systemLog (modifyDate,remark) values (@MD,@AN) GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON
Default.aspx
View Code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!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 id="Head1" runat="server"> <title>无标题页</title> </head> <body> <form id="form1" runat="server"> <div> <table align="center" background="图片2 拷贝.jpg" border="0" cellpadding="0" cellspacing="0" style="width: 473px; height: 275px"> <tr> <td colspan="2" style="height: 103px" width="100%"> <table background="图片2 拷贝.jpg" border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td align="center" colspan="1" rowspan="5" style="background-image: none; width: 169px"> </td> <td align="center" colspan="2"> <span style="font-size: 9pt; color: red"><strong>修改管理员密码</strong></span></td> </tr> <tr> <td align="right" style="width: 100px; height: 19px"> <span style="font-size: 9pt"> </span></td> <td style="width: 100px; height: 19px"> </td> </tr> <tr> <td align="right" style="width: 100px; height: 24px;"> <span style="font-size: 9pt">管理员名称:</span></td> <td style="width: 100px; height: 24px;"> <asp:TextBox ID="TextName" runat="server"></asp:TextBox></td> </tr> <tr> <td align="right" style="width: 100px; height: 19px"> <span style="font-size: 9pt"> 管理员密码:</span></td> <td style="width: 100px; height: 19px"> <asp:TextBox ID="TextPass" runat="server"></asp:TextBox></td> </tr> <tr> <td align="right" style="width: 100px; height: 19px;"> <span style="font-size: 9pt"></span></td> <td style="width: 100px; height: 19px;"> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="修改密码" Width="65px" /></td> </tr> </table> <asp:Label ID="Label1" runat="server" BackColor="#FFC080" Font-Size="9pt" Text="修改后的信息显示如下:"></asp:Label></td> </tr> <tr> <td style="width: 106px; height: 226px"> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="190px" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2" Font-Size="9pt"> <Columns> <asp:BoundField DataField="admName" HeaderText="管理员名称"> <HeaderStyle Font-Size="12pt" /> <ItemStyle Font-Size="10pt" /> </asp:BoundField> <asp:BoundField DataField="admPass" HeaderText="管理员密码"> <HeaderStyle Font-Size="12pt" /> <ItemStyle Font-Size="10pt" /> </asp:BoundField> </Columns> <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" /> <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" /> <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" /> <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" /> <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" /> </asp:GridView> </td> <td style="width: 100px; height: 226px"> <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" BackImageUrl="~/背景图10.jpg" Width="270px" CellPadding="4" ForeColor="#333333" GridLines="None" Font-Size="9pt"> <Columns> <asp:BoundField DataField="modifyDate" HeaderText="修改日期"> <HeaderStyle Font-Size="12pt" /> <ItemStyle Font-Size="10pt" /> </asp:BoundField> <asp:BoundField DataField="remark" HeaderText="备注"> <HeaderStyle Font-Size="12pt" /> <ItemStyle Font-Size="10pt" /> </asp:BoundField> </Columns> <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /> <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /> <RowStyle BackColor="#FFFBD6" ForeColor="#333333" /> <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" /> <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" /> <AlternatingRowStyle BackColor="White" /> </asp:GridView> </td> </tr> </table> </div> </form> </body> </html>
Default.aspx.cs
View Code
using System; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.SqlClient; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { loadGridView1(); loadGriView2(); } } protected void loadGridView1() { SqlConnection con = new SqlConnection(ConfigurationSettings.AppSettings["strCon"]); con.Open(); SqlDataAdapter sda = new SqlDataAdapter("select * from admInfo03", con); DataSet ds = new DataSet(); sda.Fill(ds); GridView1.DataSource = ds; GridView1.DataBind(); con.Close(); } protected void loadGriView2() { SqlConnection con = new SqlConnection(ConfigurationSettings.AppSettings["strCon"]); con.Open(); SqlDataAdapter sda = new SqlDataAdapter("select * from systemLog03", con); DataSet ds = new DataSet(); sda.Fill(ds); GridView2.DataSource = ds; GridView2.DataBind(); con.Close(); } protected void Button1_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(ConfigurationSettings.AppSettings["strCon"]); con.Open(); string str = "select count(*) from admInfo03 where admPass='" + TextPass.Text.ToString() + "'"; SqlCommand mycom = new SqlCommand(str, con); int intcont = Convert.ToInt32(mycom.ExecuteScalar()); if (intcont > 0) { Response.Write("<script language=javascript>alert('对不起!您已经修改了此密码!')</script>"); return; } else { string sql = "update admInfo03 set admPass='" + TextPass.Text + "' where admName='" + TextName.Text + "'"; try { SqlCommand com = new SqlCommand(sql, con); com.ExecuteNonQuery(); Response.Write("<script language=javascript>alert('修改密码成功!')</script>"); } catch (Exception error) { Response.Write(error.ToString()); } finally { con.Close(); loadGridView1();//在GridView1里显示管理员信息的方法; loadGriView2();//在GridView2里显示系统日志的方法; } } } }