标题:System.ArgumentOutOfRangeException异常错误
只看楼主
水晶之恋
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-4-23
 问题点数:0 回复次数:8 
System.ArgumentOutOfRangeException异常错误

public void DataList_DeleteCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
aa=Convert.ToString(DataList1.DataKeys[e.Item.ItemIndex]);
//System.ArgumentOutOfRangeException:索引超出范围,必须为非负值并小于集合大小.参数名: index

string str="select count(*) from users where users.dep_id='" + aa + "'";
com=new SqlCommand(str,conn);
conn.Open();
int Count=Convert.ToInt32(com.ExecuteScalar());
if(Count==0)
{
Delete();

}
else Response.Write("<script>javascript:alert('该部门里还有员工,不允许删除!!!');window.location='dep_manage.aspx'</script>");

conn.Close();

}


private void Delete()
{
string sql="delete from dep where dep_id='" + aa + "'";
com1=new SqlCommand(sql,conn);

com1.ExecuteNonQuery();
conn.Close();
ListBind();
}

[此贴子已经被作者于2007-6-2 17:36:49编辑过]

搜索更多相关主题的帖子: System 
2007-06-02 17:21
skyland84
Rank: 2
等 级:新手上路
威 望:4
帖 子:544
专家分:0
注 册:2006-10-9
得分:0 
你怎么不把出错信息发出来看看?

决定人生~
2007-06-02 17:28
GrimFish
Rank: 1
等 级:新手上路
威 望:1
帖 子:167
专家分:0
注 册:2007-5-28
得分:0 
饿,看来这篇帖子你的思路终于明白了,这个是DATAKEYS没有设置

DataList1.DataKeyField = "dep_id";//你这里应该是设置为

或者在DataList1,右键,属性。找到DataKeyField,设置为这个字段。
2007-06-02 17:49
水晶之恋
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-4-23
得分:0 

我在前台已经设置了
<asp:datalist DataKeyField = "dep_id"/>

2007-06-02 17:52
GrimFish
Rank: 1
等 级:新手上路
威 望:1
帖 子:167
专家分:0
注 册:2007-5-28
得分:0 

暂时看不出,跟踪调试一下。在什么情况出现错误?
string str="select count(*) from users where users.dep_id='" + aa + "'";
这句改一下
string str="select * from users where users.dep_id='" + aa + "'";

2007-06-02 18:00
skyland84
Rank: 2
等 级:新手上路
威 望:4
帖 子:544
专家分:0
注 册:2006-10-9
得分:0 
e.Item.ItemIndex

这个如果不是 SELECTED 的index 的话 那e.Item.ItemIndex 的4值就是-1

你这里可能的情况就是这样了!

决定人生~
2007-06-02 18:05
GrimFish
Rank: 1
等 级:新手上路
威 望:1
帖 子:167
专家分:0
注 册:2007-5-28
得分:0 
DataList1.DataKeys
LS的,看别人的代码不应该乱看吧。

DataList1.DataKeys[e.Item.ItemIndex]

这里是不很明确了是DataList1.DataKeys?

这里不是很明确的说明了DataList_DeleteCommand事件?

System.Web.UI.WebControls.DataListCommandEventArgs e

难道这个还需要解释?
2007-06-02 18:07
水晶之恋
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-4-23
得分:0 
我不是很明白skyland84的意思
2007-06-02 18:09
skyland84
Rank: 2
等 级:新手上路
威 望:4
帖 子:544
专家分:0
注 册:2006-10-9
得分:0 
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
GridView1.SelectedIndex=e.RowIndex;////你加上这段看看
int number = (int)GridView1.SelectedValue;
AccessDataSource1.DeleteParameters["pid"].DefaultValue = number.ToString();
AccessDataSource1.Delete();
//Response.Redirect("admin.aspx");
GridView1.DataSource = AccessDataSource1;
GridView1.DataBind();
}


这是我 之前写的代码!
类似处理

决定人生~
2007-06-02 18:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-144355-1-1.html




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

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