| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 958 人关注过本帖
标题:总提示:索引超出范围。必须为非负值并小于集合大小。
只看楼主 加入收藏
雪雨星风
Rank: 1
来 自:北京
等 级:新手上路
威 望:1
帖 子:566
专家分:0
注 册:2007-10-11
结帖率:100%
收藏
 问题点数:0 回复次数:4 
总提示:索引超出范围。必须为非负值并小于集合大小。
极度郁闷中,困扰了一天了,做了4遍,结果还是一个样,紧急求救!!!!




string strCon = "Data Source=(local);Database=baoming;Uid=sa;Pwd=admin";

    SqlConnection sqlcon;

    SqlCommand sqlcom;

    protected void gvUser_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {     

        string sqlstr = "delete from Stu_Info where userID='" + gvUser.DataKeys[e.RowIndex].Value.ToString() + "'";

        sqlcon = new SqlConnection(strCon);

        sqlcom = new SqlCommand(sqlstr, sqlcon);

        sqlcon.Open();

        sqlcom.ExecuteNonQuery();

        sqlcon.Close();

        bind();
    }
    public void bind()
    {

        string sqlstr = "select * from Stu_Info";

        sqlcon = new SqlConnection(strCon);

        SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);

        DataSet myds = new DataSet();

        sqlcon.Open();

        myda.Fill(myds, "Stu_Info");

        gvUser.DataSource = myds;

        gvUser.DataKeyNames = new string[] { "userID" };//主键

        gvUser.DataBind();

        sqlcon.Close();

    }
搜索更多相关主题的帖子: 负值 索引 范围 sqlcon string 
2008-06-13 17:54
雪雨星风
Rank: 1
来 自:北京
等 级:新手上路
威 望:1
帖 子:566
专家分:0
注 册:2007-10-11
收藏
得分:0 
我放了个复选框  还有另外的两个按钮 1个全选  1个删除  和QQ邮箱差不多的效果 我用以下方法删除选中项  还是提示  


for (int i = 0; i < gvUser.Rows.Count;i++ )
        {
            //string userID = "";
           if(((CheckBox)gvUser.Rows[i].FindControl("ckOne")).Checked==true)
           {
               int id =Convert.ToInt32(gvUser.Rows[i].Cells[13].Text);
               //userID = this.gvUser.DataKeys[.DataItemIndex].Value.ToString();
               //Response.Write(str);
               string sqlconnstr = ConfigurationManager.AppSettings["ConnStr"].ToString();
               SqlConnection conn = new SqlConnection(sqlconnstr);
               SqlCommand comm = new SqlCommand("delete from Stu_Info where userID=" + id, conn);
               conn.Open();
               Response.Write("<script language=javascript>window.alert('确定要删除选定的内容吗?')</script>");
               comm.ExecuteNonQuery();            
               chaxun();         
               conn.Close();
           
           }

        }

C#发烧友QQ群1:5953354   QQ群2:68096127  QQ群3:30217249  QQ群4:37023079   为了更好方便大家交流学习,请不要重复加群
2008-06-13 17:58
snipen
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-5-5
收藏
得分:0 
string sqlstr = "delete from Stu_Info where userID='" + gvUser.DataKeys[e.RowIndex].Value.ToString() + "'";
这个是不是要改成string sqlstr = "delete from Stu_Info where userID=" + gvUser.DataKeys[e.RowIndex].Values["userID"].ToString();你数据库中的ID是什么类型的?

像我这么拉风的男孩子,就像是黑暗中的萤火虫那样,在哪里都是那么的鲜明出众……
2008-06-13 19:59
tomtory
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:705
专家分:0
注 册:2008-6-12
收藏
得分:0 
那点包的错哦!
2008-06-14 09:27
tomtory
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:705
专家分:0
注 册:2008-6-12
收藏
得分:0 
看一下ID取到没有!还有连接字符串取道没有的哦
2008-06-14 09:28
快速回复:总提示:索引超出范围。必须为非负值并小于集合大小。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024675 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved