为什么一条数据会连续两次插入到数据库中,请大家指点
为什么一条数据会连续两次插入到数据库中,请大家指点,下面是我的代码:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(Page.IsPostBack)
{
Page.Validate();
DataSet rd = new DataSet();
rd.ReadXml(Server.MapPath("Web.config"));
if(rd.Tables[1].Rows[3][1].Equals("close"))
{
panel1.Visible=false;
Response.Write("<h2 style='color: red'>留言本被管理员禁用!</h2>");
}
//判断cookie是否为空,若为空说明浏览器禁用了cookie
if(Request.Cookies["CheckCode"]==null)
{
lblMessage.Text="您的浏览器设置已被禁用Cookes,您必须设置浏览器允许使用Cookis选项后才能留言";
lblMessage.Visible=true;
return;
}
if(string.Compare(Request.Cookies["CheckCode"].Value,tbCheckCode.Text,true)!=0)
{
lblMessage.Text="验证码错误,请输入正确的验证码。";
lblMessage.Visible=true;
return;
}
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
public void btnOK_Click(object sender, System.EventArgs e)
{
if(string.Compare(Request.Cookies["CheckCode"].Value,tbCheckCode.Text,true)!=1)
{
Response.Write(Title.Text);
string MyConnString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("../CR/CH05/Book.mdb");
MyConn = new OleDbConnection(MyConnString);
MyCommand = new OleDbCommand("insert into message(username,userface,userurl,usermail,userqq,usertitle,usercontent,usertime)values('"+Name.Text+"','"+face.SelectedValue+"','"+Homepage.Text+"','"+Email.Text+"','"+QQ.Text+"','"+Title.Text+"','"+Content.Text+"','"+System.DateTime.Now+"')",MyConn);
MyConn.Open();
MyCommand.ExecuteNonQuery();
MyConn.Close();
}
}
我曾经试过用if(!Page.IsPostBack)把整个page_load事件括起来,和去掉验证吗的功能都没有解决这问题。大家帮我看看