有一个DataList数据控件,其中一个<asp:LinkButton>的删除按钮
其事件如下:
protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
{
int uid = (int)this.DataList1.DataKeys[e.Item.ItemIndex];
Product pt = new Product(); //Product类
pt.del_product(uid);
Response.Write("<script>alert('删除成功!')</script>");
BindData();
}
Product类的del_product方法如下:
public void del_product(int uid)
{
con.Open();
SqlCommand cmd = new SqlCommand("admin_del_product", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@uid", SqlDbType.Int).Value = uid;
try
{
cmd.ExecuteNonQuery();
}
catch (Exception err)
{
throw new System.Exception(err.Message);
}
finally
{
con.Close();
}
}
存储过程如下:
CREATE proc admin_del_product
@uid int
as
delete from PRODUCT_INFO where ProductID=@uid
GO
现在的问题是:页面一加载时能显示,但点击“删除”按钮所有数据消失,而且无法删除数据。
以前好像碰到过datalist事件失效的case,大概通过是事件丢失引起的。
你“评理解决方案”--重新生成解决方案,再启动调试,跟踪看看有没有执行到这里
cmd.ExecuteNonQuery();//这时参数是否正确?
甚至可以启动SQL跟踪器跟踪SQL语句执行情况
跟踪一下嘛,看看到底是事件丢失了,还是SQL语句执行出问题了