我在后台写了一个方法          
 public static BaseInfo OraclelistByID(int id)
        {
            BaseInfo ds = null;
            string sql = "SELECT * FROM PAM_CARD_RECORD where CARDTYPE_ID =" + id;
            
                 DataTable dt = SearchHelper.GetSearchDataTable(sql);
                if (dt.Rows.Count > 0)
                {
                    ds = new BaseInfo();
                    ds.RECORD_ID = Convert.ToInt32(dt.Rows[0]["RECORD_ID"]);
                    ds.RECORD_COUNT = Convert.ToInt32(dt.Rows[0]["RECORD_COUNT"]);                    ds.RECORD_DATE = Convert.ToDateTime(dt.Rows[0]["RECORD_DATE"]);                    ds.CARDTYPE_ID = Convert.ToInt32(dt.Rows[0]["CARDTYPE_ID"]);
                }                    return ds;
        }然后 在后台类绑定   
         private void SearchDataBind()
         {
             dl.DataSource = PamBaseInfo.OraclelistByID(Convert.ToInt32(Oracle_ID));
             dl.DataBind();  
         }可是报一个叫 dl使用的是无效数据源。有效数据源必须实现   IListSource   或   IEnumerable   
的 错误  到底是为什么啊?????

解决方案 »

  1.   

    你赋予的数据源是一个BaseInfo类型。数据源需要的是实现 IListSource 或 IEnumerable的数据。如DateSet或者List<BaseInfo>类型!
      

  2.   

    我在后台写了一个方法   
     public static BaseInfo OraclelistByID(int id)
      {
    改成返回list<BaseInfo>
    大概是这样的
      

  3.   

    PamBaseInfo.OraclelistByID(Convert.ToInt32(Oracle_ID));这个方法,返回什么数据集????
    最好是返回是datatable或dataset
    这样就可以了,
      

  4.   

      dl.DataSource = new List<BaseInfo >{PamBaseInfo.OraclelistByID(Convert.ToInt32(Oracle_ID))};
      dl.DataBind();