簡體   English   中英

我沒有解決“必須聲明一個主體,因為它沒有被標記為抽象,外部或部分”的問題嗎?

[英]i don't solve “must declare a body because it is not marked abstract, extern, or partial” problem?

我該如何解決“必須聲明一個主體,因為它沒有被標記為抽象,外部或部分”。 這個問題。 你能給我一些建議嗎?

完整錯誤消息是關於保存,更新,刪除,選擇事件...

完整的消息樣本:

GenoTip.DAL._AccessorForSQL.Save(string,System.Collections.Specialized.ListDictionary,System.Data.CommandType)'必須聲明一個主體,因為它沒有被標記為抽象,外部或部分

此錯誤還會在更新,刪除,選擇...中返回。

 public abstract class _AccessorForSQL
    {
        public virtual bool Save(string sp, ListDictionary ld, CommandType cmdType);
       public virtual bool Update();
       public virtual bool Delete();
       public virtual DataSet Select();
    }

    class GenAccessor : _AccessorForSQL
    {
        DataSet ds;
        DataTable dt;
        public override bool Save(string sp, ListDictionary ld, CommandType cmdType)
        {
            SqlConnection con = null;
            SqlCommand cmd = null;
            SqlDataReader dr = null;
            try
            {
                con = GetConnection();
                cmd = new SqlCommand(sp, con);
                con.Open();
                cmd.CommandType = cmdType;
                foreach (string ky in ld.Keys)
                {
                    cmd.Parameters.AddWithValue(ky, ld[ky]);
                }
                dr = cmd.ExecuteReader();
                ds = new DataSet();
                dt = new DataTable();
                ds.Tables.Add(dt);
                ds.Load(dr, LoadOption.OverwriteChanges, dt);

            }
            catch (Exception exp)
            {

                HttpContext.Current.Trace.Warn("Error in GetCustomerByID()", exp.Message, exp);
            }
            finally
            {
                if (dr != null) dr.Close();
                if (con != null) con.Close();

            }
            return (ds.Tables[0].Rows.Count > 0) ? true : false;

        }
        public override bool Update()
        {
            return true;
        }
        public override bool Delete()
        {
            return true;
        }
        public override DataSet Select()
        {
            DataSet dst = new DataSet();
            return dst;
        }


        private static SqlConnection GetConnection()
        {
            string connStr = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            SqlConnection conn = new SqlConnection(connStr);
            return conn;
        }

要么將它們標記為抽象,要么給它們一個空的身體。

您的方法“保存”,“更新”,“刪除”和“選擇”沒有正文。 您需要將它們標記為抽象或賦予它們主體(即實現它們)。

“虛擬”方法可以被覆蓋,但不是必須的 因此,您需要指定一個方法主體。

如果只想指定方法簽名,則將它們聲明為“抽象”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM