异常详细信息: 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    行: 64IndexOutOfRangeException: 在位置 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;  
}

解决方案 »

  1.   

    看看你的sql 在数据库中跑一下 看看能取出数据否?
      

  2.   

    是啊,将断点设到return product.Tables[0].Rows[0];此句就不能通过测试?????,查看一下ds中是否有记录,十之八九是SQL语句有问题。
      

  3.   

    return product.Tables[0].Rows.Count==0?null:product.Tables[0].Rows[0];
      

  4.   

    没有满足要求的数据被检索到,product.Tables[0] = NULL
      

  5.   

    product.Tables[0].Rows[0];
    里面没有数据!
    建议用你的sql去数据库表里测试一下
    看看有没有返回值!
      

  6.   

    return product.Tables[0].Rows.Count==0?null:product.Tables[0].Rows[0];
    原因为product.Tables[0].Rows[0];无数据
      

  7.   

    product.Tables[0].Rows[0]; 
    里面没有数据! 
    建议用你的sql去数据库表里测试一下 
    看看有没有返回值! 
      

  8.   

    为什么我的有数据也显示这个错误,把代码放在return 里就可以,不加return 就报错,我真蛋疼了