public static topic_debate getTopicDebate(int id)
       {
           string strsql="select * from topic_debate where id="+id+" and isdel=0" ;
           SqlQuery sql=Utils.GetNewSql(null,CommandType.Text,strsql);
           DataSet ds=SqlDataAccess.ExecuteDataset(sql,DBSettings.icancn.ConnectionString);
           if(!Utils.isNullData(ds))
           {
               return getTopicDebate(ds.Tables[0].Rows[0]);
           }
         return null;
                       
       }这个getTopicDebate(ds.Tables[0].Rows[0])方法不懂,这个方法接受的不是一个int类型的数据吗,那怎么接受
ds.Tables[0].Rows[0]呢,他应该是一行数据啊。
麻烦高手详细讲解下,我不胜感激, 我还是刚出来的实习生,很菜很菜。- -! 谢谢

解决方案 »

  1.   

    ds.Tables[0].Rows[0] 从显式上看是个 Object类型实际他是根据实际数据类型的
    你这个写法 看不出
    比如
    sql语句是 select id,name from xxxx
    那么 如果有数据的话
    ds.Tables[0].Rows[0] 就对应第一条数据的 id字段
    实际上是整形
      

  2.   

    说错了 应该是  ds.Tables[0].Rows[0]【0】
      

  3.   

    哦,懂了 这个方法是一个重载方法,后面还有一个 public static topic_debate getTopicDebate(DataRow row)
           {
               topic_debate model=new topic_debate();
     恩,谢谢大家的回答。谢谢!!
      

  4.   

    这个方法本身应该有问题,搞了个递归貌似没有必要下面效果应该查不多,而且方法的返回类型是DataSet更合理
            public static topic_debate getTopicDebate(int id)
            {
                string strsql = "select top 1 * from topic_debate where id=" + id + " and isdel=0";
                SqlQuery sql = Utils.GetNewSql(null, CommandType.Text, strsql);
                DataSet ds = SqlDataAccess.ExecuteDataset(sql, DBSettings.icancn.ConnectionString);
                return ds;
            }