国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

自定義數據庫物理表中各列字段的名稱

2024-07-21 02:29:51
字體:
來源:轉載
供稿:網友

  (一). 序幕

  1.在實際的軟件開發中大部分都是團隊合作開發的,經常會出現這種情況,一個程序員只設計好數據庫,由另一個程序員寫程式.這就出現一個問題. 設計數據庫的程序員 設計數據庫字段名稱命名習慣 與 寫程式碼程序員數據庫命名習慣有些不同.  例如: 數據庫程序員對 客戶名稱習慣命名"customername" ,而寫程式代碼程序員習慣命名"cusname",這樣,寫程式代碼程序員在使用時,可能會大量使用類似:dataset.row[0]["cusname"],這樣在更新時就會報錯,如果大量出現這種情況的話,不但增加開發時修改bug所耗時間,而且更重要的是會使整個項目各代碼頁面很難統一.

  2.可以實現客戶端命名不受數據庫的約束.  例如數據庫中兩個表中的兩個名稱字段分別為: customername和projectname;  客戶端在相關界面,命名字段時沒必要知道是哪個表中字段的名稱,直接寫name就可以了.

  此文章就是解決上面兩點的要求.

  (二). 解決方法

  1.

  其實sqldataadapter就已經實現此功能了. 它可以實現列映射,即將數據庫的列程序員自定義的列對應起來. 舉例說明:

  設有個客戶表 customer ,下面將對其內字段進行映射,具體 代碼如下:

  sqldataadapter myadapter = new dqldataadapter();        

  datatablemapping mymapping = new datatablemapping();

  mymapping = myadapter.tablemappings.add("customer","customer");  //告訴橋接器并添加映射對象

  mymapping.columnmappings.add("customerid","id");   //實際數據庫中字段名為: customerid, 在實際 //對其操作時可以用id字段名稱.  例如:

  //  ds.table["customer"].row[0]["id"];   //就表示客戶編號列

  mymapping.columnmappings.add("customername","name");

  mymapping.columnmappings.add("customeremail","email");

  myadapter.fill(ds,"customer");

  以上在使用時只需用映射后的操作就可以啦.  映射后的這段名稱可以自定義.  sqldataadapter會將它們

      對應起來,即將它們看作是同一列.

  2 .解決站點統一問題 : 

  a.

  假設在十個頁面中都用了代碼:

  ds.table["customer"].row[0]["customername"];

  現在由于某原因,要修改數據庫表字段,需要將物理數據庫中的字段:customername改為: cusname基于現在的情況,還要到這十個頁面中去,找出所有的:

  ds.table["customer"].row[0]["customername"];

  并將其改為:  ds.table["customer"].row[0]["cusname"];

  呵,就改一個字段就帶來這么多麻煩,如果改好多個表的多個字段的話呢,時間消耗多少和維護難易程度就可想而知了.      下面就解決這個問題.

 b.

 定義一個類,并繼承dataset. 代碼如下:

 public class customer : dataset

 {

     public enum field

    {

  id = 0; //這些列與 dataset內部表獲得數據后實際字段名稱對應要正確.  這里自己控制

    name = 1;

    email = 2;

    password = 3;

    }                

 }

  ok, 最后一步了,使用方法是這樣的:

  ds.table["customer"].row[0][customer.field.id];   //取某列值

  比起:             ds.table["customer"].row[0]["customerid"];

  方便多了吧?

     這樣,如果物理數據庫字段怎么修改,程式代碼根本不用修改(連這個類本身也不用修改).


謝謝閱讀!

菜鳥學堂:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大余县| 丹寨县| 平度市| 南涧| 巴南区| 耒阳市| 清徐县| 沈阳市| 手游| 鸡东县| 城市| 重庆市| 临沂市| 昌宁县| 桑日县| 福鼎市| 奉节县| 晋宁县| 罗江县| 广水市| 慈利县| 通江县| 封丘县| 福州市| 徐水县| 龙川县| 遵化市| 民县| 兴义市| 道真| 呼和浩特市| 临江市| 宜宾县| 祁门县| 平顶山市| 奉节县| 东乌| 鄄城县| 广宁县| 昌黎县| 工布江达县|