数据为什么会重复添加1个?

songwin 2003-07-26 10:44:31
把一个textbox中的数据添加到数据库中,可以每次点击按钮后都回添加两个相同的数据。

后台代码:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace quanliwenCsharp
{
/// <summary>
/// Addtype 的摘要说明。
/// </summary>
public class Addtype : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button BtnAddtype;
protected System.Web.UI.WebControls.TextBox txttype;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面

}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.BtnAddtype.Click += new System.EventHandler(this.BtnAddtype_Click);

}
#endregion

private void BtnAddtype_Click(object sender, System.EventArgs e)
{
//添加到数据库
String strConnection = ConfigurationSettings.AppSettings["connectionString"];
SqlConnection objConnection = new SqlConnection(strConnection);
objConnection.Open();

String strsql;
strsql = "insert producetype (ttype) values (@txttype)";

SqlCommand objCommand = new SqlCommand(strsql,objConnection);
objCommand.Parameters.Add("@txttype", SqlDbType.NVarChar, 50);

objCommand.Parameters["@txttype"].Value = txttype.Text;
SqlDataReader objReader = objCommand.ExecuteReader();

objReader.Close();

objConnection.Close();

}



}
}
...全文
141 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
saucer 2003-07-26
  • 打赏
  • 举报
回复
这里
this.BtnAddtype.Click += new System.EventHandler(this.BtnAddtype_Click);

已经绑定
this.BtnAddtype_Click()方法到你的事件,如果你又有<asp:Button Onclick="BtnAddtype_Click">的话,方法就会被绑定两次,方法就会被调用两次
songwin 2003-07-26
  • 打赏
  • 举报
回复
把onclick属性在aspx页面中去掉之后 问题 就解决了 但是不太明白问题原因
saucer 2003-07-26
  • 打赏
  • 举报
回复
do you have any code in your aspx page?? remove the OnClick attribute in your <asp:Button> tag

also, you don't need objCommand.ExecuteReader, call ExecuteNonQuery instead

String strsql = "insert producetype (ttype) values (@txttype)";
SqlCommand objCommand = new SqlCommand(strsql,objConnection);
objCommand.Parameters.Add("@txttype", SqlDbType.NVarChar, 50);
objCommand.Parameters["@txttype"].Value = txttype.Text;
objCommand.ExecuteNonQuery();
greystar 2003-07-26
  • 打赏
  • 举报
回复
设个断点,调试一下,为什么会执行二次,
debug
相关推荐
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2003-07-26 10:44
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。