CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

页面刚打开时没错,但一刷新就提示数组超出界限!

楼主oldmoon(电子商务人,电子商务路)2006-03-09 14:23:31 在 .NET技术 / ASP.NET 提问

页面刚打开时没错,但一刷新就提示数组超出界限!代码如下:  
  namespace   Telecai.luyou  
  {  
  using   System;  
  using   System.Data;  
  using   System.Drawing;  
  using   System.Web;  
  using   System.Web.UI.WebControls;  
  using   System.Web.UI.HtmlControls;  
  using   System.Data.SqlClient;  
  using   Telecai.cs;  
   
  ///   <summary>  
  /// TuijianHotel   的摘要说明。  
  ///   </summary>  
  public   class   TuijianHotel   :   System.Web.UI.UserControl  
  {  
  protected   System.Web.UI.WebControls.DataList   Hotel;  
  SqlConnection   ConnStr;  
  SqlDataAdapter   da;  
  DataSet   ds;  
  static   int[]   cityID=new   int[5]{0,0,0,0,0};  
  int   i=0;  
  static   int   j=0;  
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  //   在此处放置用户代码以初始化页面  
  if(!IsPostBack)  
  {  
  string   str=Conn.SqlStr();  
   
  try  
  {  
   
  ConnStr=new   SqlConnection(str);  
  ConnStr.Open();  
  da=new   SqlDataAdapter("select   top   5   *   from   hotel   order   by   h_jingjia",ConnStr);  
  ds=new   DataSet();  
  da.Fill(ds,"hotel");  
  foreach(DataRow   row   in   ds.Tables["hotel"].Rows)  
  {  
  //Response.Write(row["h_name"]);  
  cityID[i]=Convert.ToInt32(row["h_cityID"]);  
   
  i++;  
   
  }  
  Hotel.DataSource=ds.Tables["hotel"].DefaultView;  
  Hotel.DataBind();  
   
       
  }  
  catch(Exception   en)  
  {  
  Response.Write("提起数据库时出错!");  
  Response.Write(en);  
  }  
  finally  
  {  
  da.Dispose();  
  ds.Dispose();  
  ConnStr.Close();  
  }  
  }  
   
   
  }  
  public   void   Hotel_Bound(object   sender,DataListItemEventArgs   e)//给Label赋值,得到宾馆所在城市  
  {  
  //int   cityID=10;  
  if(e.Item.ItemType   ==   ListItemType.Item   ||   e.Item.ItemType   ==   ListItemType.AlternatingItem)  
  {  
   
  try  
  {  
  string   str=Conn.SqlStr();  
   
  SqlConnection   ConnStr=new   SqlConnection(str);  
  ConnStr.Open();  
  SqlCommand   CommStr=new   SqlCommand("select   c_name   from   city   where   id="+cityID[j],ConnStr);  
  SqlDataReader   dr=CommStr.ExecuteReader();  
  if(dr.Read())  
  {  
   
  ((Label)e.Item.FindControl("city")).Text=dr["c_name"].ToString();  
           
   
  }  
  }  
  catch(Exception   en)  
  {  
  Response.Write("提起数据时出错!");  
  Response.Write(en);  
  }  
  finally  
  {  
   
   
  ConnStr.Close();  
   
  }  
   
  j++; //用于判断加载项  
   
  }  
   
   
  }  
   
  #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  
  }  
  }  
  问题点数:20、回复次数:9Top

1 楼nameone(过客)回复于 2006-03-09 14:41:37 得分 1

UPTop

2 楼oldmoon(电子商务人,电子商务路)回复于 2006-03-09 17:12:34 得分 0

急等答案Top

3 楼fangbuge(窗外的雨)回复于 2006-03-10 09:46:59 得分 1

你自己看一下出错页面的提示不就知道哪一行出错,这样让别人看,怎么看啊?Top

4 楼lgnet(www.51bw.net)回复于 2006-03-10 12:00:26 得分 1

你的cityID索引值只能到4,你怎么就使用10了,不超界还说不过去…Top

5 楼oldmoon(电子商务人,电子商务路)回复于 2006-03-10 12:59:48 得分 0

楼上的,我没有用10啊!  
  //int   cityID=10;  
  =========================  
  SqlCommand   CommStr=new   SqlCommand("select   c_name   from   city   where   id="+cityID[j],ConnStr);  
  Top

6 楼figoren(figoren)回复于 2006-03-10 13:10:34 得分 17

static   int   j=0;  
  原因就在这!  
  j是一个静态变量,而静态变量只初始化一次,  
  所以当你J++后,再刷新这个page时,J实时不为0  
  所以数组一定会超出界限!  
  解决办法  
  去掉static就ok了!!Top

7 楼dqmayg(小马)回复于 2006-03-10 13:18:10 得分 0

程序写的太烂了Top

8 楼robert2004(我能发财)回复于 2006-03-10 15:08:40 得分 0

哈哈    
   
   
  ---------------------------  
  苦海无边   回头无岸  
  ---------------------------  
   
  Top

9 楼oldmoon(电子商务人,电子商务路)回复于 2006-03-10 17:43:01 得分 0

看来还是figoren(figoren)   同志厉害啊!谢谢你!Top

相关问题

  • 数组的问题!(索引超出数组界限),求救,急!!!
  • 索引超出数组界限
  • *****关于“索引超出了数组界限...”的问题*****
  • 报错:索引超出了数组界限?????
  • 关于“索引超出了数组界限“问题
  • 动态数组?>???那位大哥,能帮帮忙..上面代码没错误!!!!!
  • 数组
  • 数组
  • 数组??
  • 数组

关键词

  • 界限
  • 页面
  • 代码
  • ds
  • 数组
  • cityid
  • hotel
  • connstr
  • 刷新
  • 超出界限

得分解答快速导航

  • 帖主:oldmoon
  • nameone
  • fangbuge
  • lgnet
  • figoren

相关链接

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

广告也精彩

反馈

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