日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

【原】获取数据库(SQL SERVER 2005)的所有信息 Get all database information from SQL Server 2005 测试通过...

發布時間:2025/3/17 数据库 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【原】获取数据库(SQL SERVER 2005)的所有信息 Get all database information from SQL Server 2005 测试通过... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

公司同事要交畢業論文,說是要做一個小項目交差。 開始我給這個同事SHOW 了一下 LINQ, 同事說,LINQ 看起來代碼很少(其實LINQ代碼不少,只是自己寫的那部分少了而已!數據庫生成實體的代碼很多的!),說要代碼多點的!(忽悠老師不懂唄!),我說行!我就給他推薦了CODEPLUS,CODESMITH以及DBToCode的代碼生成器,用代碼生成器生成代碼,那樣看起來代碼也多,洋氣!這位同事滿意而去!不過第二天,其想法變了,說要做個代碼生成器,且要基于數據庫的,可是其對數據庫不熟悉,我說給其寫個Oracle,可是人家更不熟悉Oracle啊!暈倒,我說救人救到底,送佛送到西!我悶頭花了半個小時寫個個獲取SQL SERVER 2005數據庫的全部信息,是全部數據庫,如今單個數據庫不是什么問題了!嘿嘿!聽起來懸乎懸乎的吧,哈哈,不蒙大家了,上代碼:

Code
<%@?Page?Language="C#"?%>

<%@?Import?Namespace="System.Data"?%>

<%@?Import?Namespace="System.Data.SqlClient"?%>

<%@?Import?Namespace="?System.Collections.Generic"?%>

<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

?

<script?runat="server">

????string?connectionString?
=?"Data?Source=.;Initial?Catalog=master;Persist?Security?Info=True;User?ID=sa;Password=sa";

????protected?
void?Page_Load(object?sender,?EventArgs?e)

????{

????????List
<string>?DatabasesNameList?=?GetDatabasesName();

????????foreach?(string?DatabaseName?
in?DatabasesNameList)

????????{

????????????Response.Write(
"Database?Name:?");

????????????Response.Write(DatabaseName);?Response.Write(
"<br?/>");

????????????Response.Write(
"----------------------------------------------------------------------------------------------------------");?Response.Write("<br?/>");

????????????Response.Write(
"----------------------------------------------------------------------------------------------------------");

????????????Response.Write(
"<br?/>");

????????????List
<string>?TablesNameslist?=?GetTablesName(DatabaseName);

????????????foreach?(string?TableName?
in?TablesNameslist)

????????????{

????????????????Response.Write(
"Table?Name:?");

????????????????Response.Write(TableName);

????????????????Response.Write(
"<br?/>");

????????????????DisplayTables(TableName,?DatabaseName);

????????????????Response.Write(
"<br?/>");?Response.Write("<br?/>");?Response.Write("<br?/>");

????????????}

????????????Response.Write(
"<br?/>");?Response.Write("<br?/>");?Response.Write("<br?/>");

????????}

????}

????
void?DisplayTables(string?tablename,?string?databasename)

????{

????????string?connectionString?
=?GetDatabaseConnectionString(databasename);

????????string?Query?
=?"SELECT?*?FROM?["?+?tablename?+?"]";

????????SqlConnection?conn?
=?new?SqlConnection(connectionString);

????????SqlDataAdapter?sda?
=?new?SqlDataAdapter(Query,?conn);

????????conn.Open();

????????DataSet?ds?
=?new?DataSet();

????????sda.Fill(ds,?tablename);

????????DataTable?tblSchema?
=?ds.Tables[tablename];

????????conn.Close();

?

????????Response.Write(
"Column?Name?------???Data?Type?------?Unique?------?Auto?Increment?------?Allow?DBNull");

????????Response.Write(
"<br?/>");

?

????????foreach?(DataColumn?dc?
in?tblSchema.Columns)

????????{

????????????string?DatabaseInfo?
=?dc.ColumnName?+?"------"?+?dc.DataType?+?"------"?+?dc.Unique?+?"------"?+?dc.AutoIncrement?+?"------"?+?dc.AllowDBNull;

????????????Response.Write(DatabaseInfo);

????????????Response.Write(
"<br?/>");

????????}

????}

?

????string?GetDatabaseConnectionString(string?DatabaseName)

????{

????????string?Res?
=?"Data?Source=.;Initial?Catalog?=?DatabaseName?;Persist?Security?Info=True;User?ID=sa;Password=sa";

????????Res?
=?Res.Replace("DatabaseName",?DatabaseName);

????????
return?Res;

????}

?

????List
<string>?GetTablesName(string?DatabaseName)

????{

????????string?connectionString?
=?GetDatabaseConnectionString(DatabaseName);

????????DataTable?tables?
=?new?DataTable();

????????using?(SqlConnection?connection?
=?new?SqlConnection(connectionString))

????????{

????????????SqlCommand?command?
=?connection.CreateCommand();

????????????command.CommandText?
=?"select?table_name?as?Name?from?INFORMATION_SCHEMA.Tables?where?TABLE_TYPE?=?'BASE?TABLE'";

????????????connection.Open();

????????????tables.Load(command.ExecuteReader(CommandBehavior.CloseConnection));

????????}

????????List
<string>?list?=?new?List<string>();

????????foreach?(DataRow?row?
in?tables.Rows)

????????{

????????????list.Add(row[
0].ToString());

????????}

????????
return?list;

????}

?

?

????List
<string>?GetDatabasesName()

????{

????????DataTable?tables?
=?new?DataTable();

????????using?(SqlConnection?connection?
=?new?SqlConnection(connectionString))

????????{

????????????SqlCommand?command?
=?connection.CreateCommand();

????????????command.CommandText?
=?"select?name?from?master..sysdatabases";

????????????connection.Open();

????????????tables.Load(command.ExecuteReader(CommandBehavior.CloseConnection));

????????}

????????List
<string>?list?=?new?List<string>();

????????foreach?(DataRow?row?
in?tables.Rows)

????????{

????????????list.Add(row[
0].ToString());

????????}

????????
//?We?can?not?visit?the?system?databases

????????list.Remove(
"msdb");

????????list.Remove(
"master");

????????list.Remove(
"tempdb");

????????list.Remove(
"model");

????????list.Remove(
"ReportServer");

????????list.Remove(
"ReportServerTempDB");

????????list.Remove(
"aspnetdb");

?

????????
return?list;

????}???

????

????

</script>

?

<html?xmlns="http://www.w3.org/1999/xhtml">

<head?runat="server">

????
<title>Visit?Database</title>

</head>

<body>

????
<form?id="form1"?runat="server">

????
</form>

</body>

</html>

總結

以上是生活随笔為你收集整理的【原】获取数据库(SQL SERVER 2005)的所有信息 Get all database information from SQL Server 2005 测试通过...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。