| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 576 人关注过本帖
标题:索引超出范围? 怎么改阿?
只看楼主 加入收藏
ximin9977
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-5-21
收藏
 问题点数:0 回复次数:1 
索引超出范围? 怎么改阿?

索引超出范围。必须为非负值并小于集合大小。参数名: index

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名: index

源错误:

行 35: 			cm.Parameters .Add ("@UID", SqlDbType.VarChar );
行 36: 			cm.Parameters ["@UID"].Value =Request.QueryString [0];
行 37: 			//打开连接
行 38: 			cn.Open ();
行 39: 			//执行ExecuteReader


源文件: f:\bms\userdetail.aspx.cs 行: 37



后台程序:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Configuration ;
using System.Data .SqlClient ;
namespace BMS
{
/// <summary>
/// userdetail 的摘要说明。
/// </summary>
public class userdetail : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label lbl_uemail;
protected System.Web.UI.WebControls.Label lbl_upower;
protected System.Web.UI.WebControls.Label lbl_uid1;
protected System.Web.UI.WebControls.Label lbl_uname;
protected System.Web.UI.WebControls.Label lbl_uid;

private void Page_Load(object sender, System.EventArgs e)
{//从文件Web.config中读取连接字符串
string strconn= ConfigurationSettings.AppSettings["dsn"];
//连接本地计算机的BMS数据库
SqlConnection cn= new SqlConnection (strconn);
//创建SQL语句
string mysql="select * from Users where UID=@UID";
SqlCommand cm=new SqlCommand (mysql,cn);
//添加并设置参数的值
cm.Parameters .Add ("@UID", SqlDbType.VarChar );
cm.Parameters ["@UID"].Value =Request.QueryString [0];
//打开连接
cn.Open ();
//执行ExecuteReader
SqlDataReader dr=cm.ExecuteReader ();
if(dr.Read ())//有数据读出,即有匹配用户
{
//进行Label绑定
lbl_uid.Text =dr["UID"].ToString ();
lbl_uid1.Text =dr["UID"].ToString ();
if(dr["UPower"].ToString ()=="1") lbl_upower.Text ="管理员";
else lbl_upower.Text ="普通会员";
lbl_uemail.Text =dr["Email"].ToString ();
cn.Close ();
}
else
{
Response.Write ("该用户不存在,请返回");
Response.End ();
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}

搜索更多相关主题的帖子: 索引 范围 
2006-05-23 20:24
铲铲
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:506
专家分:0
注 册:2006-5-2
收藏
得分:0 
据判断可能是
cm.Parameters ["@UID"].Value =Request.QueryString [0];
出问题。QueryString 为空。

使用单步执行调试,以发现问题

铲铲是也
2006-05-23 22:12
快速回复:索引超出范围? 怎么改阿?
数据加载中...
 
   



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

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