產生表的實體類工具,有助於減少代碼量,加快開發速度.
先看
第一副圖根據輸入的串連伺服器位址 使用者名稱 登入資料庫名 密碼串連到資料庫.如果錯誤則提示串連失敗.
第二幅圖先取的當前資料庫所有的使用者建立的表
然後根據選中的表名取得資料庫中關於此表資訊的的系統資料表.然後將欄位類型轉換為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 然後從設定檔讀取.怎奈發現應用程式執行中.只有下次才能從設定檔中讀.所以就沒這麼做.
源碼下載