歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

基於SQL腳本將數據庫表及字段提取為C#中的類

開發時,勉不了需要使用SQL直接與數據庫交互,這時對於數據庫中的表名及字段名會使用的比較多。如果每使用一次都復制一個,實在蛋疼。所以就考慮將其做成const常量。但是數據庫中的表和字段相當多,一個一個敲,不但累,還有可能敲錯。要保證正確,最好的辦法當然是使用工具或者腳本。

這裡提供一個SQL腳本的實現。

原理:獲取數據庫的表--->遍歷每個表中的字段--->生成數據

SQL代碼

DECLARE @tableName VARCHAR(MAX)
DECLARE @tableCount int
DECLARE @tableIndex int
DECLARE @tempTable TABLE
(
  DATA VARCHAR(MAX)
)

SELECT @tableCount=COUNT(*) FROM SysObjects WHERE XType='U'
-- XType='U':表示所有用戶表;
--XType='S':表示所有系統表;
SET @tableIndex=1

WHILE @tableIndex<=@tableCount

 BEGIN
  SELECT @tableName=NAME
  FROM
  (
   SELECT ROW_NUMBER() OVER(ORDER BY NAME) AS TempNO,NAME FROM SysObjects
   WHERE XType='U'
  ) TEMP
  WHERE TempNO=@tableIndex
 
  INSERT INTO @tempTable VALUES('')
 
  INSERT INTO @tempTable VALUES('#region ' +@tableName)
 
  INSERT INTO @tempTable VALUES('public sealed class ' +@tableName+'{')

  INSERT INTO @tempTable SELECT 'public const string '+name+'="'+name+'";'  FROM  syscolumns WHERE  id  in 
  (SELECT  id  FROM  sysobjects  WHERE  name=@tableName)

  INSERT INTO @tempTable VALUES( '}')
 
  INSERT INTO @tempTable VALUES('#endregion')
 
  INSERT INTO @tempTable VALUES('')
 
  SET @tableIndex+=1
 END

SELECT * FROM @tempTable

生成的結果

SQL中的結果圖

C#中的結果圖

具體可以依據需要作出調整

C#多線程編程實例 線程與窗體交互【附源碼】 http://www.linuxidc.com/Linux/2014-07/104294.htm

C#數學運算表達式解釋器 http://www.linuxidc.com/Linux/2014-07/104289.htm

在C語言中解析JSON配置文件 http://www.linuxidc.com/Linux/2014-05/101822.htm

C++ Primer Plus 第6版 中文版 清晰有書簽PDF+源代碼 http://www.linuxidc.com/Linux/2014-05/101227.htm

Copyright © Linux教程網 All Rights Reserved