使用datagrid出现一个奇怪的问题
我用datagrid绑定数据,在按纽列添加“删除”列,为deleteCommand写代码,可是运行后点“删除”老没反应,在dgrd_DeleteCommand函数里下断点也没能断下来。
不过连续快速点击很多次“删除”却能正常执行删除,真晕,不知为什么?
我新建一网页,重复操作,还是出现上面的问题(只是一个简单的测试例子)
namespace sql
{
/// <summary>
/// WebForm3 的摘要说明。
/// </summary>
public class WebForm3 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid dgrd;
DataSet ds = new DataSet();//定义一个结果集
string cfg= "server=(local);database=sql;uid=sa;pwd=123 ";
private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
this.my_data_bind();
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.dgrd.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgrd_DeleteCommand);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
public void my_data_bind()
{
SqlConnection sqlconn = new SqlConnection(cfg);//把连接赋予定义的sqlconn这个连接
SqlDataAdapter sda = new SqlDataAdapter( "select * from book ",sqlconn);//执行数据库操作
sda.Fill(ds);//填充定义好的结果结
sqlconn.Open(); //打开数据库
dgrd.DataSource = ds;//把这个结果集赋予DataGrid1
dgrd.DataBind(); //帮顶这个DataGrid1
sqlconn.Close(); //关闭数据库
}
private void dgrd_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
int spid = int.Parse(e.Item.Cells[0].Text);
SqlConnection sqlconn = new SqlConnection(cfg);//把连接赋予定义的sqlconn这个连接
sqlconn.Open();
string cmdText= "delete from book where id= "+spid;
SqlCommand cmd=new SqlCommand(cmdText,sqlconn);
cmd.ExecuteNonQuery();
sqlconn.Close();
my_data_bind();
}
}
}
------解决方案--------------------我试过了,我的行的。说明不是代码问题,你机子的问题。