数据源的类型无效。它必须是 IListSource、IEnumerable 或 IDataSource。
这是什么问题啊??

解决方案 »

  1.   

    if (!IsPostBack)
            {
                string name = Session["user"].ToString();
                DetailsView1.DataSource = BusinessManager.GetNewsByBusiness_sName(name);
            }
    这是调用后的
      

  2.   

     public static Business_s GetNewsByBusiness_sName(string name)
            {
                string sql = "select * from Business where Business_sName=@Business_sName";
                using (SqlDataReader reader = DBHelper.GetReader(sql, new SqlParameter("@Business_sName", name)))
                {
                    if (reader.Read())
                    {
                        Business_s bs = new Business_s();
                        bs.Region_iID = (int)reader["Region_iID"];
                        bs.Business_sName = (string)reader["Business_sName"];
                        bs.Business_sPWD = (string)reader["Business_sPWD"];
                        bs.Business_sCaption = (string)reader["Business_sCaption"];
                        bs.Business_sAdd = (string)reader["Business_sAdd"];
                        bs.Business_sTel = (string)reader["Business_sTel"];
                        bs.Business_sBus = (string)reader["Business_sBus"];
                        bs.Business_sDescription = (string)reader["Business_sDescription"];
                        bs.Business_iFirstFlag = (byte)reader["Business_iFirstFlag"];
                        bs.Business_iSecondFlag = (byte)reader["Business_iSecondFlag"];
                        bs.Business_iThreeFlag = (byte)reader["Business_iThreeFlag"];
                        bs.Business_iFourFlag = (byte)reader["Business_iFourFlag"];
                        bs.Business_iFiveFlag = (byte)reader["Business_iFiveFlag"];
                        bs.Business_iSixFlag = (byte)reader["Business_iSixFlag"];
                        bs.Business_dTime = (DateTime)reader["Business_dTime"];
                        bs.Business_sFullName = (string)reader["Business_sFullName"];
                        bs.Business_sContact = (string)reader["Business_sContact"];
                        bs.Business_sEmail = (string)reader["Business_sEmail"];
                        reader.Close();
                        return bs;
                    }
                    else
                    {
                        reader.Close();
                        return null;
                    }            }
            }这是方法
      

  3.   

    DetailsView1.DataSource = BusinessManager.GetNewsByBusiness_sName(name); 数据源指定错了!
      

  4.   

    DetailsView1.DataSource 邦定的数据源必须是 IListSource、IEnumerable 或 IDataSource这些的
    也就是说Business_s这个类不能当作数据源进行邦定的
      

  5.   

    你只是返回了一个实体public static List<Business_s> GetNewsByBusiness_sName(string name) 

        string sql = "select * from Business where Business_sName=@Business_sName"; 
        using (SqlDataReader reader = DBHelper.GetReader(sql, new SqlParameter("@Business_sName", name))) 
        { 
            while (reader.Read()) 
            { 
                Business_s bs = new Business_s(); 
                bs.Region_iID = (int)reader["Region_iID"]; 
                bs.Business_sName = (string)reader["Business_sName"]; 
                bs.Business_sPWD = (string)reader["Business_sPWD"]; 
                bs.Business_sCaption = (string)reader["Business_sCaption"]; 
                bs.Business_sAdd = (string)reader["Business_sAdd"]; 
                bs.Business_sTel = (string)reader["Business_sTel"]; 
                bs.Business_sBus = (string)reader["Business_sBus"]; 
                bs.Business_sDescription = (string)reader["Business_sDescription"]; 
                bs.Business_iFirstFlag = (byte)reader["Business_iFirstFlag"]; 
                bs.Business_iSecondFlag = (byte)reader["Business_iSecondFlag"]; 
                bs.Business_iThreeFlag = (byte)reader["Business_iThreeFlag"]; 
                bs.Business_iFourFlag = (byte)reader["Business_iFourFlag"]; 
                bs.Business_iFiveFlag = (byte)reader["Business_iFiveFlag"]; 
                bs.Business_iSixFlag = (byte)reader["Business_iSixFlag"]; 
                bs.Business_dTime = (DateTime)reader["Business_dTime"]; 
                bs.Business_sFullName = (string)reader["Business_sFullName"]; 
                bs.Business_sContact = (string)reader["Business_sContact"]; 
                bs.Business_sEmail = (string)reader["Business_sEmail"]; 
                reader.Close(); 
                return bs; 
            } 
            else 
            { 
                reader.Close(); 
                return null; 
            } 
        } 
    } 引用这个命名空间 using System.Collections.Generic;
      

  6.   


    public static List<Business_s> GetNewsByBusiness_sName(string name) 

        List<Business_s> list = new List<Business_s>;
        string sql = "select * from Business where Business_sName=@Business_sName"; 
        using (SqlDataReader reader = DBHelper.GetReader(sql, new SqlParameter("@Business_sName", name))) 
        { 
            while (reader.Read()) 
            { 
                Business_s bs = new Business_s(); 
                bs.Region_iID = (int)reader["Region_iID"]; 
                bs.Business_sName = (string)reader["Business_sName"]; 
                bs.Business_sPWD = (string)reader["Business_sPWD"]; 
                bs.Business_sCaption = (string)reader["Business_sCaption"]; 
                bs.Business_sAdd = (string)reader["Business_sAdd"]; 
                bs.Business_sTel = (string)reader["Business_sTel"]; 
                bs.Business_sBus = (string)reader["Business_sBus"]; 
                bs.Business_sDescription = (string)reader["Business_sDescription"]; 
                bs.Business_iFirstFlag = (byte)reader["Business_iFirstFlag"]; 
                bs.Business_iSecondFlag = (byte)reader["Business_iSecondFlag"]; 
                bs.Business_iThreeFlag = (byte)reader["Business_iThreeFlag"]; 
                bs.Business_iFourFlag = (byte)reader["Business_iFourFlag"]; 
                bs.Business_iFiveFlag = (byte)reader["Business_iFiveFlag"]; 
                bs.Business_iSixFlag = (byte)reader["Business_iSixFlag"]; 
                bs.Business_dTime = (DateTime)reader["Business_dTime"]; 
                bs.Business_sFullName = (string)reader["Business_sFullName"]; 
                bs.Business_sContact = (string)reader["Business_sContact"]; 
                bs.Business_sEmail = (string)reader["Business_sEmail"]; 
                list.add(bs);
                reader.Close(); 
                return list; 
            } 
            else 
            { 
                reader.Close(); 
                return null; 
            } 
        } 
    } 这样呢,BLL层的返回类型也是List<Business_s>
      

  7.   

    楼上的是正解。。完全正确。。而且很明白不是引用类错误,而是你返回的类型错了,datasource只能是集合类型的,而你是个实体
      

  8.   

    回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。