关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

C#面对对象的资料库心得分享

发布时间:2020-02-24 18:37:28

這是個人最近的使用習慣, 暫未見有人分享類似的代碼, 個人而言, 它只是初級面向對象的用法! 但它是實用的, 易於修改的, 易於明白的東西!


當你在一個系統裡,操作資料每個TABLE的加入, 更新等等的東西, 而對於業餘的在下來說, 因為常常遇到類似的事情, 想在一個地方裡用GLOBAL VARIABLE去編, 但它好像不夠面向對象... 最近有了這個新的寫法: (可能已經有很多仁兄會這樣寫, 所以講明, 雖是自己想出來, 但可不代表我是第一人!!)


class Receiver

    {

        public string company { get; set; }

        public string receiver { get; set; }

        public string country { get; set; }

        public string email { get; set; }

        public string piroity { get; set; }

        public string province { get; set; }

        public  string category { get; set; }

    }


    class ReceiverTable : Receiver

    {

        public string table { get; set; }

        public ReceiverTable()

        {

            company = "Company";

            receiver = "ReceiverName";

            country = "Country";

            email = "Email";

            piroity = "piority";

            province = "province";

            table = "receiver";

            category = "category";

        }

    }


    class ReceiverDBControler : Receiver

    {

        public ReceiverDBControler()

        { 

            

        }


        public void AddRec(Receiver myReceiver)

        {


            ReceiverTable myReceiverTable = new ReceiverTable();


            DB.dbControler mydb = new DB.dbControler();

            mydb.options.Add("MODE", "INSERT_EXIT");

            mydb.options.Add("TABLE", myReceiverTable.table);

            Hashtable myValues = new Hashtable();

            myValues.Add(myReceiverTable.company, "'" + myReceiver.company + "'");

            myValues.Add(myReceiverTable.receiver, "'" + myReceiver.receiver + "'");

            myValues.Add(myReceiverTable.country, "'" + myReceiver.country + "'");

            myValues.Add(myReceiverTable.email, "'" + myReceiver.email + "'");

            myValues.Add(myReceiverTable.province, "'" + myReceiver.province + "'");

            myValues.Add(myReceiverTable.piroity, "'" + myReceiver.piroity + "'");

            myValues.Add(myReceiverTable.category, "'" + myReceiver.category + "'");


            mydb.options.Add("VALUES", myValues);


            mydb.Insert();

        }

    }

 


在下這個是C# + MYSQL方案裡節錄出來... 


想法上, 我會有一個類(例子中的Receiver), 和原本那個資料庫的每個FIELD相付合, 但所有變數, 都是字串, 因為字串是百搭的!!


我會把原本那個類, 轉生一個叫TABLE的類(例子中的ReceiverTable ), 這個類的作用, 是用來記錄每一個FILED的名稱, 方便日後做INSERT, SELECT 等的事情...


 而在原本那個類, 我再轉生一個資料庫控制的類, 做該TABLE的新增, 修改等工作!


這是這樣, 資料庫的操作, 變得面向對象! 資料庫的修改, 更加簡單!


在這個方法下, 如果操作多於一個TABLE時, 在下的見解是: 交給STORED PROCEDURE (預儲程序)!


這樣, 你就能簡便, 快捷以及準確的成功開發了!


 


註: 這裡的ReceiverDBControler, 大家修改用作日常的ADO.NET的INSERT方法, 就可以正常運行, 因為在下另外用其他方法做INSERT...



/template/Home/Zkeys/PC/Static