公司同事要交毕业论文,说是要做一个小项目交差。 开始我给这个同事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 测试通过...相关推荐

  1. SQL Server 2008中获取数据库所有表及其字段名称、类型、长度的SQL

    对于有些数据库我们没有权限或者因为其它原因无法查看其数据库的表结构,那么我们将要自己想办法去做了,如果能够应用程序访问的话,我们就可以使用如下所示的 sql脚本来获取数据库中的所有表结构了,代码如下: ...

  2. Sql Server获取数据库名,表信息,字段信息,主键信息等

    --Sql Server获取数据库名,表信息,字段信息,主键信息等--获取所有数据库名: SELECT name FROM master..sysdatabases WHERE name NOT IN ...

  3. SQL server获取数据库数据

    SQL server获取数据库数据 两表对比,查询A表中缺少的字段 例如 获取数据库指定表中的列 例如 获取某个存储过程的参数 两表对比,查询A表中缺少的字段 select a.name as nam ...

  4. server sql 数据总行数_SqlServer中获取数据库中每个表的行数

    CREATE TABLE #RowCounts(NumberOfRows BIGINT,TableName VARCHAR(128)) EXEC sp_MSForEachTable 'INSERT I ...

  5. ssas从mysql获取数据库_通过AMO获取SQL Server SSAS信息

    Analysis Management Objects (AMO) 是SQL Server SSAS的对象模型库,通过它可以方便的对SSAS里的对象进行访问及控制,包括Cube,DataSource, ...

  6. sql express 无法启动服务_在Windows2012下安装SQL Server 2005无法启动服务的解决办法...

    因为安装了Windows2012操作系统,的确很不错,唯一的遗憾就是不支持Sql Server 2005的安装.找了很多办法,基本上都有缺陷.现在终于找到一种完全正常没有缺陷的办法了,和大家分享一下. ...

  7. sql 获取数据库字段信息_使用DBATools获取SQL数据库详细信息

    sql 获取数据库字段信息 In the series of articles on DBATools, (see TOC at the bottom) we are exploring useful ...

  8. sql azure 语法_Azure Kubernetes服务(AKS)–管理SQL Server数据库文件

    sql azure 语法 In this article, we will review on managing database files of SQL Server running on Azu ...

  9. 智能SQL优化工具--SQL Optimizer for SQL Server(帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 )...

    SQL Optimizer for SQL Server 帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 SQL Optimizer for SQL Server 让 SQL Serve ...

最新文章

  1. Netlog 的数据库及 LAMP 架构
  2. oracle 日志写满,Oracle归档日志写满错误解决方法
  3. 著名软件公司的java笔试算法题!(含参考答案)
  4. 前端学习必备之ES6解构赋值的常见用法
  5. ASP.NET Core中使用IOC三部曲(三.采用替换后的Autofac来实现AOP拦截)
  6. c语言内部堆排序的实现,内部排序之堆排序的实现详解
  7. 上一家单位离职的原因_面试官:你为什么从上一家公司离职?小伙更换答案后,立马被录取...
  8. STM8学习笔记---PWM互补波形输出
  9. 一些思维的碎片(二)
  10. chrome插件开发引入图片静态资源
  11. 嵌入式课程 之 陀螺仪传感器实验
  12. SetupAPI简介与设备管理
  13. c语言中整型常量和实型常量的写法
  14. 梦幻西游鸿蒙石之鉴如何捡碎片,梦幻西游鸿蒙石之鉴任务攻略 鸿蒙石之鉴攻略...
  15. 初次创建andriod项目出现的问题
  16. Java女生后来_那些主动的女生后来怎么样了?
  17. 什么是项目管理,如何做好项目管理?
  18. LSB图像信息隐藏(实现及分析)
  19. Diskman 重建分区表 (小莫)
  20. 如何将pip更新到最新版本?

热门文章

  1. 基于 Java Web 的毕业设计选题管理平台--选题报告与需求规格说明书
  2. 第三章 JVM内存回收区域+对象存活的判断+引用类型+垃圾回收线程
  3. 多线程之多生产多消费者
  4. oracle 全文检索技术
  5. 玩玩IronPython
  6. 高性能Javascript HTML集合访问的学习笔记
  7. 有两个集合,两个集合都是10万个数据(已排序),判断B是不是A的子集,算法时间复杂度为Q(N)...
  8. svchost.exe占用CPU 100%,也可能是这样的原因
  9. 盘点Greenplum 6.0六大新特性及展望
  10. 谷歌、微软、亚马逊6个惊人的A/B测试实例