生成表的實體類工具,有助於減少代碼量,加快開發速度.
先看效果圖
第一副圖根據輸入的連接服務器地址 用戶名 登錄數據庫名 密碼連接到數據庫.如果錯誤則提示連接失敗.
第二幅圖先取的當前數據庫所有的用戶創建的表
然后根據選中的表名取得數據庫中關於此表信息的的系統表.然后將字段類型轉換為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 然后從配置文件讀取.怎奈發現應用程序執行中.只有下次才能從配置文件中讀.所以就沒這么做.