首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

错误详细信息: System.IndexOutOfRangeException: 在位置 0 处没有任何行?

2012-10-12 
异常详细信息: System.IndexOutOfRangeException: 在位置 0 处没有任何行??????????????????????异常详细

异常详细信息: System.IndexOutOfRangeException: 在位置 0 处没有任何行??????????????????????
异常详细信息:   System.IndexOutOfRangeException:   在位置   0   处没有任何行。

源错误:  


行   62:                           DataSet   product   =   new   DataSet();
行   63:                           sqlAdapter1.Fill(product,TableName);
行   64:                           return   product.Tables[0].Rows[0];
行   65:                    
行   66:                   }
 

源文件:   c:\Inetpub\wwwroot\TragramMini\WebTragMini\App_Code\DBOperate.cs         行:   64

IndexOutOfRangeException:   在位置   0   处没有任何行。]
      System.Data.RBTree`1.GetNodeByIndex(Int32   userIndex)   +1879674
      System.Data.DataRowCollection.get_Item(Int32   index)   +14
      TangramMiniWeb.DBOperate.GetDataRow(String   sql,   String   TableName,   String   dbname)   in   c:\Inetpub\wwwroot\TragramMini\WebTragMini\App_Code\DBOperate.cs:64
      TangramMiniWeb.CommonFuntion.getAffiche(Int32   BigClass_ID,   Int32   SmallClass_ID)   in   c:\Inetpub\wwwroot\TragramMini\WebTragMini\App_Code\CommonFuntion.cs:102
      TangramMiniWeb.list.Page_Load(Object   sender,   EventArgs   e)   in   c:\Inetpub\wwwroot\TragramMini\WebTragMini\tan\default.aspx.cs:31
      System.Web.UI.Control.OnLoad(EventArgs   e)   +99
      System.Web.UI.Control.LoadRecursive()   +47
      System.Web.UI.Page.ProcessRequestMain(Boolean   includeStagesBeforeAsyncPoint,   Boolean   includeStagesAfterAsyncPoint)   +1061


源码为:

DBOperate.cs  

                public   static   DataRow   GetDataRow(string   sql,   string   TableName,   string   dbname)
                {
                        SqlConnection   sqlConnection   =   new   SqlConnection(strCon);
                        SqlDataAdapter   sqlAdapter1   =   new   SqlDataAdapter(sql,   sqlConnection);
                        DataSet   product   =   new   DataSet();
                        sqlAdapter1.Fill(product,TableName);
                        return   product.Tables[0].Rows[0];此句就不能通过测试?????
                 
                }  

2.

public   static   string   getAffiche(int   BigClass_ID,int   SmallClass_ID)
{
//获取公告信息
string   r= " ",sql;
                        if   (SmallClass_ID   ==   0)
                        {


                                sql   =   "SELECT   affiche   FROM   affiche   WHERE   (BigClass_ID   =   "   +   BigClass_ID.ToString()   +   ") ";
                        }
                        else
                        {
                                sql   =   "SELECT   affiche   FROM   affiche   WHERE   (BigClass_ID   =   "   +   BigClass_ID.ToString()
                                        +   ")   AND   (SmallClass_ID   =   "   +   SmallClass_ID.ToString()   +   ") ";
                        }

DataRow   dr=DBOperate.GetDataRow(sql, "affiche ", "TangramMiniWeb ");???????????????
                   
                        r   =   dr[ "affiche "].ToString();
                     
return   r;    
}




[解决办法]
看看你的sql 在数据库中跑一下 看看能取出数据否?
[解决办法]
是没有数据的时候,你引用了
[解决办法]
是啊,将断点设到return product.Tables[0].Rows[0];此句就不能通过测试?????,查看一下ds中是否有记录,十之八九是SQL语句有问题。
[解决办法]
return product.Tables[0].Rows.Count==0?null:product.Tables[0].Rows[0];
[解决办法]
没有满足要求的数据被检索到,product.Tables[0] = NULL

热点排行