CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

用checkbox批量删除的问题~出先问题了,在线等解决利马给分

楼主njrbgaoshou(大鸟走路都碍事NJ)2006-11-02 18:36:28 在 .NET技术 / ASP.NET 提问

OleDbConnection   myConn   =   new   OleDbConnection(Class1.ConnString);  
                  myConn.Open();  
                  string   strDelId="";  
                  foreach   (GridViewRow   i   in   GridView1.Rows)  
                  {  
                          CheckBox   ckb   =   (CheckBox)i.FindControl("CheckBox");  
                          if   (ckb.Checked)  
                          {  
                                  strDelId   =   GridView1.DataKeys[i.RowIndex].Value.ToString();  
                          }  
                        string   delsql   =   "delete   from   userreg   where   id="   +   strDelId;  
                          OleDbCommand   cmd   =   new   OleDbCommand(delsql,myConn);  
                          cmd.ExecuteNonQuery();                          
                  }  
                  myConn.Close();  
   
  出错了显示下面错误:  
  --------------------------  
  未将对象引用设置到对象的实例。    
  说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。    
   
  异常详细信息:   System.NullReferenceException:   未将对象引用设置到对象的实例。  
   
  源错误:    
   
   
  行   66:                   {  
  行   67:                           CheckBox   ckb   =   (CheckBox)i.FindControl("CheckBox");  
  行   68:                           if   (ckb.Checked)  
  行   69:                           {  
  行   70:                                   strDelId   =   GridView1.DataKeys[i.RowIndex].Value.ToString();  
     
   
  源文件:   f:\homework\netbest2\WebSite\checkbox.aspx.cs         行:   68 问题点数:40、回复次数:12Top

1 楼jingye721(我不是弱者≮我メ他妈的谁欺负我,我全拿小本记着!≯)回复于 2006-11-02 18:46:20 得分 0

foreach   (DataGridItem   item   in   dbStaffList.Items)  
  {  
  if(((CheckBox)item.FindControl(controlID)).Checked==true   )  
                    {  
            ...  
                    }  
  }Top

2 楼lizhizhe2000(武安侯)回复于 2006-11-02 18:47:01 得分 0

OleDbConnection   myConn   =   new   OleDbConnection(Class1.ConnString);  
                  myConn.Open();  
                  string   strDelId="";  
                  foreach   (GridViewRow   i   in   GridView1.Rows)  
                  {  
                          CheckBox   ckb   =   (CheckBox)i.FindControl("CheckBox");  
                          if   (ckb.Checked)  
                          {  
                                  strDelId   =   GridView1.DataKeys[i.RowIndex].Value.ToString();  
                                        string   delsql   =   "delete   from   userreg   where   id="   +   strDelId;  
                          OleDbCommand   cmd   =   new   OleDbCommand(delsql,myConn);  
                          cmd.ExecuteNonQuery();      
                          }                                
                  }  
                  myConn.Close();Top

3 楼sbqcel(空空儿)回复于 2006-11-02 18:48:07 得分 0

CheckBox   ckb   =   (CheckBox)datagrid.Items[e.Item.ItemIndex].FindControl("CheckBox");  
  我的是2003的,使用的datagrid,不知道2005里是否一样,你可以试试Top

4 楼lizhizhe2000(武安侯)回复于 2006-11-02 18:48:30 得分 0

老大,如果你   的  
            if   (ckb.Checked)  
                          {  
                                  strDelId   =   GridView1.DataKeys[i.RowIndex].Value.ToString();  
                          }  
  不执行,那么strDelId为空Top

5 楼lizhizhe2000(武安侯)回复于 2006-11-02 18:49:22 得分 0

另外string   delsql   =   "delete   from   userreg   where   id="   +   strDelId;  
  应该改写成  
  string   delsql   =   "delete   from   userreg   where   id='"   +   strDelId+"'";  
  如果你的id是字符型的Top

6 楼sbqcel(空空儿)回复于 2006-11-02 18:49:25 得分 0

晕死,对不起啊。。。Top

7 楼patrickpan(离别钩)回复于 2006-11-02 18:51:23 得分 0

foreach   (GridViewRow   i   in   GridView1.Rows)  
                  {  
                          CheckBox   ckb   =   (CheckBox)i.FindControl("CheckBox");  
                          if(ckb   !=   null)  
                          {  
                                  if   (ckb.Checked)  
                                  {  
                                          strDelId   =   GridView1.DataKeys[i.RowIndex].Value.ToString();  
                                  }  
                                  string   delsql   =   "delete   from   userreg   where   id="   +   strDelId;  
                                  OleDbCommand   cmd   =   new   OleDbCommand(delsql,myConn);  
                                  cmd.ExecuteNonQuery();                          
                          }  
                  }  
  Top

8 楼jingye721(我不是弱者≮我メ他妈的谁欺负我,我全拿小本记着!≯)回复于 2006-11-02 18:52:49 得分 0

应该把                       string   delsql   =   "delete   from   userreg   where   id="   +   strDelId;  
                          OleDbCommand   cmd   =   new   OleDbCommand(delsql,myConn);  
                          cmd.ExecuteNonQuery();                          
  放入if语句中Top

9 楼patrickpan(离别钩)回复于 2006-11-02 18:54:18 得分 0

foreach   (GridViewRow   i   in   GridView1.Rows)  
                  {  
                          CheckBox   ckb   =   (CheckBox)i.FindControl("CheckBox");  
                          if(ckb   !=   null)  
                          {  
                                  if   (ckb.Checked)  
                                  {  
                                          strDelId   =   GridView1.DataKeys[i.RowIndex].Value.ToString();  
                                            string   delsql   =   "delete   from   userreg   where   id="   +   strDelId;  
                                  OleDbCommand   cmd   =   new   OleDbCommand(delsql,myConn);  
                                  cmd.ExecuteNonQuery();                          
                                  }  
                          }  
                  }  
  Top

10 楼hhhui2008(麦田稻农)回复于 2006-11-04 10:19:52 得分 0

行   67:                           CheckBox   ckb   =   (CheckBox)i.FindControl("CheckBox");  
   
  把("CheckBox")   改成("CheckBox1")Top

11 楼haidazi(.net)回复于 2006-11-04 10:41:11 得分 0

估计是找不到CheckBox的原因。  
  试下直接引用  
    CheckBox   ckb   =   (CheckBox)i.Controls[0];Top

12 楼D__D(四月·我爱我妻)回复于 2006-12-12 15:17:05 得分 0

 
  学习Top

相关问题

关键词

得分解答快速导航

  • 帖主:njrbgaoshou

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo