引用类成员,提示不包含该成员的定义,但我有定义呀!有谁知道怎么解决吗?
帮帮忙,急!我定义的类为:
     public class product
{
      public product()
        {}
       public DataView GetProduct()
        { 
             
         }
}
引用时出错:
编译器错误信息: CS0117: “product”并不包含“GetCProduct”的定义源错误:行 27:         {
行 28:             product myproduct = new product();
行 29:             dg_product.DataSource = myproduct.GetCProduct(int.Parse(ViewState["categoryid"].ToString()));
行 30:             dg_product.DataBind();
行 31:         }

解决方案 »

  1.   

    写错了是:
     public class product
    {
          public product()
            {}
           public DataView GetCProduct(int pid)
            { 
                 
             }
    }
    问题仍在
      

  2.   

    应用dll? using? 或者你改用继承试试
      

  3.   

    定义的类是这样的:
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Data.SqlClient;
    using Dzone.DZshop.DB;
    namespace Dzone
    {
    public class product:Base 
    {
    public product()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
        public DataView getproduct()
        {
            String strsql;
            DataSet myDs;
            strsql = "SELECT category.categoryname ,productinfo.* from productinfo INNER JOIN category on productinfo.categoryid=category.categoryid";
            myDs = ExecuteSql4Ds(strsql);
            return myDs.Tables[0].DefaultView;    }
        //get category product
        public SqlDataReader GetCProduct(int categoryid)
        {
            string strsql;
            SqlDataReader result;
            try
            {
                SqlConnection myCn = new SqlConnection(strConn);
                strsql = "select * from productinfo where categoryid=" + categoryid;
                SqlCommand myCm = new SqlCommand(strsql, myCn);
                myCn.Open();
                result = myCm.ExecuteReader(CommandBehavior.CloseConnection);
                
            }
            catch (System.Data.SqlClient.SqlException er)
            {
                throw new Exception(er.Message);
            }
             return result;    }
        //get a product 
        public DataRow GetAProduct(int Pid)
        {
            string strsql;
            DataSet myDs;
            try
            {
                strsql = "SELECT category.categoryname,productinfo.* from productinfo INNER JOIN category on productinfo.categoryid=category.categoryid where productinfo.productid=" + Pid;
                myDs = ExecuteSql4Ds(strsql);
                return myDs.Tables[0].Rows[0];        }
            catch (System.Data.SqlClient.SqlException er)
            {
                throw new Exception(er.Message);
            }    }
        //get the best sales 畅销产品
        public DataView GetProductTop()
        {
            String strsql;
            DataSet myDs;
            strsql = "select top 10 productid,productname from productinfo order by sales desc";
            myDs = ExecuteSql4Ds(strsql);
            return myDs.Tables[0].DefaultView;
        }
        //get new product 最新产品
        public DataView GetNewProduct()
        {
            string strsql;
            DataSet myDs;
            strsql = "select top 10 productid,productname from productinfo order by productid desc";
            myDs = ExecuteSql4Ds(strsql);
            return myDs.Tables[0].DefaultView;
        }
        //commend product 推荐产品
        public SqlDataReader GetProductHits()
        {
            string strsql;
            SqlDataReader result;
            try
            {
                SqlConnection myCn = new SqlConnection(strConn);
                strsql = "select top 10 productid,productname,intro='  '+SUBSTRING(intro,0,100)+'......',picture from productinfo order by hits desc";
                SqlCommand myCm = new SqlCommand(strsql, myCn);
                myCn.Open();
                result = myCm.ExecuteReader(CommandBehavior.CloseConnection);
                return result;
            }
            catch (System.Data.SqlClient.SqlException er)
            {
                throw new Exception(er.Message);
            }
        }
        public DataRow gerp()
        {
            string strsql;
            DataSet myDs;
            try
            {
                strsql = "select * from productinfo ";
                myDs = ExecuteSql4Ds(strsql);
                return myDs.Tables[0].Rows[0];        }
            catch (System.Data.SqlClient.SqlException er)
            {
                throw new Exception(er.Message);
            }
        }
    }
        
    public class category : Base
        {
            public category()
            {        }
            public DataView GetCategory()
            {
                String strsql;
                DataSet myDs;
                strsql = "select * from category order by categoryid";
                myDs = ExecuteSql4Ds(strsql);
                return myDs.Tables[0].DefaultView;
            }    }
    }
    引用的是:
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using Dzone;
    namespace DZshop
    {
        public partial class showcategory : System.Web.UI.Page
        {
            product myproduct = new product();
            protected void Page_Load(object sender, EventArgs e)
            {
              
                    ViewState["categoryid"] = Request.QueryString["category"];
                    GridBind();
                     }
            private void GridBind()
            {
                SqlDataReader myDr;
                myDr = myproduct.GetCProduct(int.Parse(ViewState["categoryid"].ToString()));
                dg_product.DataSource = myDr;
               dg_product.DataBind();
            }
        }
    }
    就会出错提示:编译器错误信息: CS0117: “product”并不包含“GetCProduct”的定义
      

  4.   

    是不是后来加上去的?
    把引用的dll先删除,重新build一下试试看
      

  5.   

    namespace Dzonenamespace DZshop-------
    命名空间不一样,C#是区分大小写的
      

  6.   

    不是,原来就这样了,更奇怪的是引用其中的
            public DataView GetProductTop(){}        public DataView GetCategory(){}
    都可以。
    下面的引用通过:
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using Dzone;
    namespace DZshop
    {
        public partial class left : System.Web.UI.UserControl
        {
            product myproduct=new product();
            category mycategory=new category();
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!(this.IsPostBack))
                {
                    GridBind();
                }
            }
            private void GridBind()
            {
                DataView MyDv1;
                DataView MyDv2;
                MyDv1 = mycategory.GetCategory();
                dg_category.DataSource = MyDv1;
                dg_category.DataBind();            MyDv2 = myproduct.GetProductTop();
                dg_sales.DataSource = MyDv2;
                dg_sales.DataBind();
            }    }
    }