色婷婷亚洲六月婷婷中文字幕_人人狠狠综合久久亚洲爱咲_国产精品乱子伦xxxx裸_东京熟影院_三级全黄的视频在线观看

實時

您的位置:首頁>資訊 >

開源項目:數(shù)據(jù)庫表結(jié)構(gòu)生成文檔工具

一、軟件介紹

今天給大家分享我自己編寫的數(shù)據(jù)庫表結(jié)構(gòu)文檔生成工具,方便大家在實際開發(fā)當(dāng)中,可以很方便導(dǎo)出業(yè)務(wù)系統(tǒng)的表結(jié)構(gòu),也可以作為項目驗收文檔中數(shù)據(jù)庫設(shè)計文檔使用。這樣可以大大減少編寫數(shù)據(jù)庫表結(jié)構(gòu)文檔的時間,有需要的朋友歡迎下載或者溝通交流!

二、技術(shù)框架

●編程語言:C# ( Net Framework4.5.5)

●數(shù)據(jù)庫技術(shù)框架:Dapper


【資料圖】

●導(dǎo)出Word文檔:NPOI

●訪問方式:WinForm窗體應(yīng)用程序,Windows操作系統(tǒng)可以直接運行

三、功能介紹

●支持SQLServer、MySQL(5.7、8.0)、SQLite 三種類型的數(shù)據(jù),持續(xù)更新

●支持Word、Html、MarkDown 三種格式的導(dǎo)出

●導(dǎo)出內(nèi)容包含數(shù)據(jù)表(字段詳情、字段注釋、長度、默認值等)、創(chuàng)建表腳本、視圖及視圖腳本、存儲過程及腳本

●支持生成文檔的同時直接打開文檔

●支持數(shù)據(jù)庫備份(目前只支持SQLServer導(dǎo)出bak備份文件)

四、代碼展示1、獲取數(shù)據(jù)庫信息部分代碼
///         /// 獲取數(shù)據(jù)庫字符串        ///         ///         ///         ///         ///         ///         public string GetConnectioning(string servername, string uid, string pwd, string db, string port)        {            return string.Format("server={0};uid={1};pwd={2};database={3}", servername, uid, pwd, db);        }        ///         /// 獲取數(shù)據(jù)庫列表        ///         ///         ///         public List GetDBNameList(string conStr)        {            //List list =new List();            string sql = "select [name] from master.dbo.sysdatabases where DBId>6 Order By [Name] ";            try            {                using (SqlConnection connection = new SqlConnection(conStr))                {                    var list = connection.Query(sql).ToList();                    return list;                }            }            catch            {                return null;            }        }        public List GetDBList(string conStr)        {            //List list =new List();            string sql = "select [name] from master.dbo.sysdatabases where DBId>6 Order By [Name] ";            try            {                using (SqlConnection connection = new SqlConnection(conStr))                {                    var list = connection.Query(sql).ToList();                    return list;                }            }            catch            {                return null;            }        }        ///         /// 獲取特定數(shù)據(jù)庫的表名列表        ///         ///         ///         public List GetDBTableList(string conStr, string dbName = "")        {            var list = new List();            //string sql = "SELECT TABLE_NAME as name FROM INFORMATION_SCHEMA.TABLES where TABLE_TYPE="BASE TABLE" ";            string sql = "select a.name AS tableName,CONVERT(NVARCHAR(100),isnull(g.[value],"")) AS tableDesc from sys.tables a left join sys.extended_properties g on (a.object_id = g.major_id AND g.minor_id = 0)";            try            {                using (SqlConnection connection = new SqlConnection(conStr))                {                    list = connection.Query(sql).ToList();                }            }            catch            {            }            return list;        }        ///         /// 獲取特定數(shù)據(jù)庫里面的存儲過程        ///         ///         ///         ///         public List GetProcList(string conStr, string dbName = "")        {            var list = new List();            string sql = @"  select name as procName, (select text from syscomments where id=OBJECT_ID(name)) as proDerails                         from dbo.sysobjects  o  where OBJECTPROPERTY(id, N"IsProcedure") = 1 order by name  ";            try            {                               using (SqlConnection connection = new SqlConnection(conStr))                {                    list = connection.Query(sql).ToList();                }            }            catch            {            }            return list;        }        ///         /// 獲取特定數(shù)據(jù)庫里面的視圖        ///         ///         ///         ///         public List GetViewList(string conStr, string dbName = "")        {            var list = new List();            string sql = @"  select name as viewName, (select text from syscomments where id=OBJECT_ID(name)) as viewDerails                         from dbo.sysobjects  o  where OBJECTPROPERTY(id, N"IsView") = 1 order by name  ";            try            {                              using (SqlConnection connection = new SqlConnection(conStr))                {                    list = connection.Query(sql).ToList();                }            }            catch            {            }            return list;        }        ///         /// 獲取字段的信息        ///         ///         ///         ///         public List GetTableDetail(string tableName, string conStr, string dbName = "")        {            var list = new List();            StringBuilder sb = new StringBuilder();            sb.Append("SELECT [index] = a.colorder,    Title = a.name,    isMark =        CASE    WHEN COLUMNPROPERTY(a.id, a.name, "IsIdentity") = 1 THEN "1" ELSE "0" END, ");            sb.Append("isPK =  CASE   WHEN EXISTS(SELECT  1  FROM sysobjects WHERE xtype = "PK" AND parent_obj = a.id AND name IN(SELECT name  FROM sysindexes WHERE indid IN(SELECT indid  FROM sysindexkeys  WHERE id = a.id AND colid = a.colid)) ) THEN "1" ELSE "0" END, ");            sb.Append(" FieldType = b.name,fieldLenth = COLUMNPROPERTY(a.id, a.name, "PRECISION"),isAllowEmpty =  CASE   WHEN a.isnullable = 1 THEN "1" ELSE "0" END, defaultValue = ISNULL(e.text, ""), fieldDesc = ISNULL(g.[value], "") ");            sb.Append("FROM syscolumns a LEFT JOIN systypes b  ON a.xusertype = b.xusertype INNER JOIN sysobjects d ON a.id = d.id AND d.xtype = "U" AND d.name <> "dtproperties" LEFT JOIN syscomments e ON a.cdefault = e.id ");            sb.Append("LEFT JOIN sys.extended_properties g ON a.id = G.major_id AND a.colid = g.minor_id LEFT JOIN sys.extended_properties f ON d.id = f.major_id AND f.minor_id = 0");            //--如果只查詢指定表,加上此紅色where條件,tablename是要查詢的表名;去除紅色where條件查詢說有的表信息            sb.Append("WHERE d.name = "" + tableName + "" ORDER BY a.id, a.colorder, d.name");            try            {                using (SqlConnection connection = new SqlConnection(conStr))                {                    list = connection.Query(sb.ToString()).ToList();                }            }            catch            { }            return list;        }
2、導(dǎo)出Html文檔代碼

///         /// 生成html文件        ///         ///         ///         ///         ///         public void CreateToHtml(List list, string conStr, string db, int type, List checkList)        {            StringBuilder sb = new StringBuilder();            sb.Append("");            sb.Append("數(shù)據(jù)庫說明文檔");            sb.Append("");            sb.Append("

" + db + "數(shù)據(jù)庫說明文檔

"); GetDBService(type); #region 創(chuàng)建一個表格 if (checkList.Where(m => m.Equals("表")).Count() > 0) { sb.Append("

一、表結(jié)構(gòu)

"); sb.Append(""); sb.Append(""); if (list.Count > 0) { foreach (var item in list) { if (item.tableDesc != null && item.tableDesc != "") { sb.Append("

表名:" + item.tableName + "(" + item.tableDesc + ")

"); } else { sb.Append("

表名:" + item.tableName + "

"); } sb.Append(" "); sb.Append(""); sb.Append(""); //從第二行開始 因為第一行是表頭 int i = 1; var tabledetaillist = service.GetTableDetail(item.tableName, conStr, db); if (tabledetaillist != null && tabledetaillist.Count > 0) { foreach (var itm in tabledetaillist) { sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); i++; } } sb.Append("
序號字段名稱標識主鍵字段類型字段長度允許空值字段默認值字段備注
" + itm.index + "" + itm.Title + "" + itm.isMark + "" + itm.isPK + "" + itm.FieldType + "" + itm.fieldLenth + "" + itm.isAllowEmpty + "" + itm.defaultValue + "" + itm.fieldDesc + "
"); sb.Append("

" + item.tableName + "建表腳本


"); sb.Append("" + service.GetTableSQL(item.tableName, conStr) + ""); } } } #endregion #region 存儲過程 if (checkList.Where(m => m.Equals("存儲過程")).Count() > 0) { List proclist = new List(); proclist = service.GetProcList(conStr, db); sb.Append("

二、存儲過程

"); if (proclist != null && proclist.Count > 0) { foreach (var item in proclist) { sb.Append("

存儲過程名稱:" + item.procName + "

"); sb.Append("" + item.proDerails + ""); } } } #endregion #region 視圖 if (checkList.Where(m => m.Equals("視圖")).Count() > 0) { List viewlist = new List(); viewlist = service.GetViewList(conStr, db); sb.Append("

三、視圖

"); if (viewlist.Count > 0) { foreach (var item in viewlist) { sb.Append("

視圖名稱:" + item.viewName + "

"); sb.Append("" + item.viewDerails + ""); } } } #endregion sb.Append(""); sb.ToString(); string filename = db + "-數(shù)據(jù)庫說明文檔";//文件名 SaveFileDialog saveDialog = new SaveFileDialog(); saveDialog.DefaultExt = "html"; saveDialog.Filter = "html文件|*.html"; saveDialog.FileName = filename; saveDialog.ShowDialog(); filename = saveDialog.FileName; if (filename.IndexOf(":") < 0) return; //被點了取消 StreamWriter sw1 = new StreamWriter(saveDialog.FileName, false); sw1.WriteLine(sb); sw1.Close(); System.Diagnostics.Process.Start(filename); }

五、運行效果

應(yīng)用程序主界面

支持三種生成文檔類型:每次只能選擇一種,推薦使用markdown格式

Word文檔生成效果

Html文檔生成效果

MarkDown文檔效果

針對SQLServer數(shù)據(jù)庫備份

六、項目開源地址

GitHub:??https://github.com/hgmsq/SqlToDocTool??

Gitee:??https://gitee.com/hgm1989/SqlToDocTool??

Gitcode:??https://gitcode.net/xishining/SqlToDocTool???

關(guān)鍵詞:

推薦閱讀
一、軟件介紹今天給大家分享我自己編寫的數(shù)據(jù)庫表結(jié)構(gòu)文檔生成工具,方便大家在實際開發(fā)當(dāng)中,可以很方便導(dǎo)出業(yè)務(wù)系統(tǒng)的表結(jié)構(gòu),也可以作為項

2023-03-29 11:22:19

湖北省紀委監(jiān)委網(wǎng)站3月29日消息,中超聯(lián)賽有限責(zé)任公司原總經(jīng)理董錚涉嫌嚴重違法,目前正接受中央紀委國家監(jiān)委駐國家體育總局

2023-03-29 10:42:54

新京報訊(記者張曉蘭)3月28日,中國金茂控股集團有限公司(簡稱“中國金茂”)發(fā)布2022年度業(yè)績公告。2022年,中國金茂實現(xiàn)收入829 91億元,

2023-03-29 10:02:43

在國內(nèi)很多消費者都對全新的第四代鈴木吉姆尼情有獨鐘,尤其是其方正的車身造型與小巧卻精悍的顏值,并且越野能力也完全有能力PK一下JEEP牧馬

2023-03-29 09:09:45

3月28日,科達制造(600499)融資買入1355 87萬元,融資償還2050 33萬元,融資凈賣出694 46萬元,融資余額18 58億元。

2023-03-29 07:18:12

1、摩爾莊園里的RK吧,從小學(xué)開始喜歡,雖然后來長大知道了怪盜基德,但RK一直都在心里,一直都是那個喜歡惡作劇,但也有自

2023-03-29 05:14:20

應(yīng)用文寫作寫作題范文第1篇主題:每篇應(yīng)用文都要圍繞著一個主題展開。主題越是具體專一,應(yīng)用文就越容易寫出為誰而寫:私人信件為家人、朋友、

2023-03-29 00:52:06

1、我給你一批,看看以后是不是都能用上。2、:)瓜熟蒂落――水到渠成鼎新革故――激濁揚清守株待兔――緣木求魚見風(fēng)

2023-03-28 22:11:26

錦江酒店2022年度凈利1 13億同比增長18 67%期末公允價值上升2023 3 2819:54:08挖貝網(wǎng)丁易涵挖貝網(wǎng)3月28日,錦江酒店(6

2023-03-28 21:02:29

近日,海南省人民政府辦公廳印發(fā)《關(guān)于支持民營經(jīng)濟發(fā)展的若干措施》(以下簡稱《若干措施》),從持續(xù)優(yōu)化民營經(jīng)濟發(fā)展環(huán)境、全力促進民營企業(yè)

2023-03-28 19:21:57

南向資金今日凈買入28 93億港元。騰訊控股、美團-W、快手-W分別獲凈買入9 06億港元、5 74億港元、2 15億港

2023-03-28 18:50:24

河南廣電·大象新聞記者吳彥飛通訊員金正義王靜近年來,信陽市潢川縣政務(wù)服務(wù)大廳聚焦群眾需求,不斷探索便民服務(wù)新模式

2023-03-28 17:51:46

緊湊型純電SUV,一直以來都具有較高的競爭力,而元PLUS(圖片|配置|詢價),總是能受到廣大消費者認可,二月份銷量了20279臺(數(shù)據(jù)來自懂車帝排

2023-03-28 17:00:40

大家好該疫情數(shù)據(jù)更新統(tǒng)計周期為昨日0時起至24時,非今日實時數(shù)據(jù),數(shù)據(jù)來源于百度疫情,根據(jù)疫情實時追蹤,整理出疫情消息給大家了解下,希望

2023-03-28 16:03:11

3月28日,“彤心向陽·科技興邦”黑龍江省各族青年科技工作者交流活動啟動儀式于日在哈爾濱工程大學(xué)舉行?;顒佑珊邶埥∶褡谖?、黑龍江省科協(xié)

2023-03-28 15:05:44

程向民一行隨后來到莊信萬豐(上海)催化劑有限公司,聽取企業(yè)當(dāng)前發(fā)展情況與年度發(fā)展計劃的介紹,并深入了解企業(yè)發(fā)展訴求,幫助企業(yè)解決實際

2023-03-28 13:38:59

歡迎觀看本篇文章,小勉來為大家解答以上問題。什么動物最沒有方向感,什么是謎語很多人還不知道,現(xiàn)在讓我們一起來看看吧!1、

2023-03-28 12:08:40

谷歌宣布將于2月8日舉行活動,計劃展示其為未來搜索和人工智能(AI)而開發(fā)的新技術(shù)。雖然該公司沒有透露有關(guān)該活

2023-03-28 10:51:19

1、胎兒期:營養(yǎng)不良影響身高。2、如果孕期營養(yǎng)不良,15%—20%的寶寶出生后身高將受連累。3、這就像蓋樓挖地基一樣,如

2023-03-28 10:04:22

1、首先我們需要準備雞蛋,打到碗里,加點鹽,打雞精,一定要打得很散。2、然后加入溫開水,邊加水邊攪拌,繼續(xù)攪拌均勻,用小

2023-03-28 08:45:56