日期:2014-05-18  浏览次数:20423 次

asp.net请教
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class User_BulletinInfo : System.Web.UI.Page
{
  string strSql;
  WebService webService = new WebService();
  DataTable dtTable = new DataTable();
  protected void Page_Load(object sender, EventArgs e)
  {
 
  string ID=string.IsNullOrEmpty(Request.QueryString["bid"])?"":Request.QueryString["bid"];
  strSql = "Update BulletinInfo set Bul_point=Bul_point+1 where Bul_ID='" + ID + "';";


  // strSql = "Update BulletinInfo set Bul_point=Bul_point+1 where Bul_ID='" + Request.QueryString["bid"].ToString() + "';";
  webService.ExcuteSelect(strSql);
  string ID1 = string.IsNullOrEmpty(Request.QueryString["bid"]) ? "" : Request.QueryString["bid"];
  strSql = "Select Bul_title,Bul_content,Bul_point from BulletinInfo where Bul_ID='" + ID1 + "';";

  // strSql = "Select Bul_title,Bul_content,Bul_point from BulletinInfo where Bul_ID='" + Request.QueryString["bid"].ToString() + "';";
  dtTable = webService.ExcuteSelect(strSql);
  this.lblBulTitle.Text = dtTable.Rows[0]["Bul_title"].ToString();
  this.lblBulContent.Text = dtTable.Rows[0]["Bul_content"].ToString();
  this.lblPoint.Text = dtTable.Rows[0]["Bul_point"].ToString();

  }
}
错误指向:this.lblBulTitle.Text = dtTable.Rows[0]["Bul_title"].ToString();
错误说明是:用户代码未处理IndexOutofRangeException
在位置 0 处没有任何行

------解决方案--------------------
这个有可能是webService.ExcuteSelect(strSql)执行后的结果集中没有记录导致的。因为dtTable里没有数据,自然也就不存在dtTable.Rows[0]这个元素,所以继续访问dtTable.Rows[0]["Bul_content"]自然就会报错。建议你单步调试一下,看看执行完成之后DataTable.Rows.Count的值是多少;如果有可能为0,那么建议把最后4行做如下修改:
C# code

dtTable = webService.ExcuteSelect(strSql); 
if(dtTable.Rows.Count > 0)
{
    this.lblBulTitle.Text = dtTable.Rows[0]["Bul_title"].ToString(); 
    this.lblBulContent.Text = dtTable.Rows[0]["Bul_content"].ToString(); 
    this.lblPoint.Text = dtTable.Rows[0]["Bul_point"].ToString(); 
}

------解决方案--------------------
dtTable里面没有数据!!先if(dtTable.Rows.Count > 0)判断一下
------解决方案--------------------
把你那个strSql放在SQL SERVER查询分析器里运行看下.