歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 基於SQL腳本將數據庫表及字段提取為C#中的類

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

日期:2017/3/1 9:37:46   编辑:Linux編程

開發時,勉不了需要使用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