首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

下部代码错在哪,为什么只要在大量添加信息的时候,这里就出错!

2011-12-15 
下面代码错在哪,为什么只要在大量添加信息的时候,这里就出错!!下面代码错在哪,为什么只要在大量添加信息的

下面代码错在哪,为什么只要在大量添加信息的时候,这里就出错!!
下面代码错在哪,为什么只要在大量添加信息的时候,这里就出错!!
如果不进行大量添加信息的时候,这里的多选操作都很正常,一大量添加信息的时候
操作就乱了,明明的是选的这几个ID,却删除了另外几个ID,怎么回事呢

protected   void   Btn_Do_Click(object   sender,   EventArgs   e)
        {
                string   keyValues   =   " ";
                for   (int   i   =   0;   i   <   Repeater.Items.Count;   i++)
                {

                        CheckBox   chkbox   =   (CheckBox)Repeater.Items[i].FindControl( "op ");
                        if   (chkbox!=null)
                        {
                          if   (chkbox.Checked   ==   true)
                          {
                                string   key   =   ((Label)Repeater.Items[i].Controls[2]).Text   +   ", ";
                                keyValues   =   keyValues   +   key;
                          }
                        }                                              
                }
                if   (keyValues   !=   " ")
                {
                        keyValues   =   keyValues.Substring(0,   keyValues.Length   -   1);
                        SqlConnection   con   =   new   SqlConnection(ConfigurationManager.AppSettings[ "sqlcon "]);
                        con.Open();
                        string   nowtime   =   DateTime.Now.ToString();
                        string   op   =   ddl_op.Text.ToString();
                        string   cmdsql   =   " ";
                        if   (op   ==   "del ")
                        {
                        cmdsql=   "delete   from   "   +   tablename   +   "   Where   id   in   ( "   +   keyValues   +   ") ";     //生成Sql   语句。


                        }                        
                        //Response.Write(cmdsql);
                        //return;
                        SqlCommand   cmd   =   new   SqlCommand(cmdsql,   con);
                        cmd.ExecuteNonQuery();   //执行sql语句。
                        con.Close();
                     
                        //得到当前页参数以便返回              
                        string   str_Return   =   GetStrReturn().ToString();
                        if   (str_Return   !=   " ")
                        {
                                str_Return   =   str_Return.Replace( "& ",   pagename   +   "? ");
                        }
                        else
                        {
                                str_Return   =   pagename;
                        }              
                        Response.Write(ShowOPInfo( "操作成功! ",   str_Return));                                              
                }
                else
                {
                        //得到当前页参数以便返回              
                        string   str_Return   =   GetStrReturn().ToString();
                        if   (str_Return   !=   " ")
                        {
                                str_Return   =   str_Return.Replace( "& ",   pagename+ "? ");
                        }
                        else


                        {
                                str_Return   =   pagename;
                        }
                        Response.Write(ShowOPInfo( "请选择操作项目! ",   str_Return));
                }

        }

[解决办法]
看代码,没有比较显眼的错误,建议你单步调试下,看看拼接id是否正确
[解决办法]
我那个帖子,其实是让你用客户端的checkbox(将记录id绑定在上面,类似 <asp:BoundColumn DataField= "ID " HeaderText= "&lt;input type= 'checkbox ' id= 'SelectAll ' onclick= 'onClickSelectAll() '&gt; "
DataFormatString= "&lt;input type= 'checkbox ' id= 'SelectItem ' name= 'SelectItem ' onclick= 'onClickSelectItem() ' value={0}&gt; ">
<HeaderStyle Width= "15px "> </HeaderStyle>
</asp:BoundColumn> )然后使用request.params[ 'checkboxname ']在后台得到选中的checkbox对应的记录id
[解决办法]
如果没有命名控件的话,asp.net运行时会以其所在名称包含器为基础对控件按其进入控件树的顺序进行固定规则的命名

热点排行