首页 新闻 搜索 专区 学院

GridView1_RowDeleting 事件中【禁止删除】的语句不起作用

0
悬赏园豆:10 [待解决问题]

1、我们做的是ASP网站,其中我想问的的【禁止删除】的代码如下:

 1  //删除
 2     protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
 3     {
 4         string sqlstr = "delete from Students where userID='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
 5         sqlcom = new SqlCommand(sqlstr, conn);
 6 
 7         if (GridView1.DataKeys[e.RowIndex].Value.ToString() == "10000000000") //基本管理员不允许删除
 8         {
 9             Response.Write("<script>alert('不允许删除基本管理员用户!')</script>");
10         }
11         else
12         {
13             conn.Open();
14             sqlcom.ExecuteNonQuery();
15             conn.Close();
16             Response.Write("<script>alert('删除成功!')</script>");
17         }
18         bind();
19     }
2、我经过断点测试,程序的确是当识别到ID号为10000000000时会执行if语句,跳过else语句。但是ID号为10000000000的记录还是被删除了。

3、希望各位能给一点解决办法的意见,若需要其他代码请留言,我会贴出。
朝阳暮色里的主页 朝阳暮色里 | 初学一级 | 园豆:192
提问于:2013-06-27 17:35
< >
分享
所有回答(4)
0

建议检查一下其他地方是否有删除操作的代码

dudu | 园豆:39034 (高人七级) | 2013-06-27 17:45
0

你的SqlCommand貌似是全局的~可能还有别的地方会有删除操作。

幻天芒 | 园豆:36594 (高人七级) | 2013-06-27 18:06
0
为啥不把sqlcom = new SqlCommand(sqlstr, conn);放到else语句呢 
alone__ | 园豆:60 (初学一级) | 2013-06-28 13:49
0

语句有先后的顺序,建议先判断,然后再执行sql语句,也就是说GridView1.DataKeys[e.RowIndex].Value.ToString() == "10000000000")
不删除,还要加上return;

另外,把
 string sqlstr = "delete from Students where userID='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
    sqlcom = new SqlCommand(sqlstr, conn);

放入else区块。

Insus.NET | 园豆:932 (小虾三级) | 2013-08-01 21:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册