根據SQLServer資料表產生C#實體類

來源:互聯網
上載者:User

產生表的實體類工具,有助於減少代碼量,加快開發速度.

先看

第一副圖根據輸入的串連伺服器位址 使用者名稱 登入資料庫名 密碼串連到資料庫.如果錯誤則提示串連失敗.

第二幅圖先取的當前資料庫所有的使用者建立的表

然後根據選中的表名取得資料庫中關於此表資訊的的系統資料表.然後將欄位類型轉換為C#資料類型.並輸出的TextBox

這裡主要用到幾個表

select * from sys.extended_properties  表注釋 和列注釋,列的排列順序(不帶列名)

select * from sys.columns 資料庫表所有列的詳細資料 欄位類型,表的欄位,名稱等

select * from sysobjects where xtype = 'U' --所有使用者建立的表 列ID

select * from systypes  --SQL SERVER 資料庫所有的類型

select * from syscolumns 所有欄位名稱 長度等

下面以 Ts_Customers 為例 取得此表的 列名,列類型,表注釋,列注釋

select syscolumns.name,systypes.name as type
,(select isnull(value,'') from sys.extended_properties ex_p where ex_p.minor_id=0

and ex_p.major_id=sysobjects.id) as TableDemo
 ,ext.value as colName from syscolumns  
  INNER   JOIN  sysobjects  ON   syscolumns.id  =  sysobjects.id 
  INNER   JOIN   systypes   ON   syscolumns.xtype   =   systypes.xtype 
  INNER join sys.extended_properties as ext on ext.major_id=sysobjects.id 
  and ext.minor_id=syscolumns.colorder
  WHERE   (sysobjects.name   =   'Ts_Customers')   AND   (systypes.name   <>   'sysname')

效果如下

取得結果後.就是迴圈寫入到TextBox了。這裡代碼不貼了.很簡單

基本達到想要的效果.遺憾的是想把資料庫連接測試通過後動態保持到app.config 然後從設定檔讀取.怎奈發現應用程式執行中.只有下次才能從設定檔中讀.所以就沒這麼做.

 

源碼下載

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.