c#获得目标服务器中所有数据库名、表名、列名的实现代码
/// <summary>
/// 获得目标服务器所有数据库名
/// </summary>
/// <param name="serverName"></param>
/// <param name="userName"></param>
/// <param name="password"></param>
public void getDataBaseNameList(string serverName, string userName, string password)
{
SQLDMO.Application sqlApplication = new SQLDMO.ApplicationClass();
SQLDMO.SQLServer sqlServer = new SQLDMO.SQLServerClass(); sqlServer.Connect(serverName, userName, password); // 连接服务器
foreach (SQLDMO.Database databBase in sqlServer.Databases)
{
if (databBase.Name != null)
{
this.DataBaseTreeView.Nodes.Add(databBase.Name);
getDataBaseTableList(serverName, userName, password, databBase.Name);
}
}
} /// <summary>
/// 加载数据库中表
/// </summary>
/// <param name="serverName">服务器名</param>
/// <param name="userName">用户名</param>
/// <param name="password">密码</param>
/// <param name="dataBaseName">数据库名</param>
private void getDataBaseTableList(string serverName, string userName, string password, string dataBaseName)
{
SQLDMO.SQLServer Server = new SQLDMO.SQLServerClass();
//连接到服务器
Server.Connect(serverName, userName, password);
//对所有的数据库遍历,获得指定数据库
for (int i = ; i < Server.Databases.Count; i++)
{
//判断当前数据库是否是指定数据库
if (Server.Databases.Item(i + , "dbo").Name == dataBaseName)
{
//获得指定数据库
SQLDMO._Database db = Server.Databases.Item(i + , "dbo");
//获得指定数据库中的所有表
for (int j = ; j < db.Tables.Count; j++)
{
this.DataBaseTreeView.Nodes[i].Nodes.Add(db.Tables.Item(j + , "dbo").Name);
}
}
}
} /// <summary>
/// 获得表中所有列名
/// </summary>
/// <param name="serverName">服务器名</param>
/// <param name="userName">用户名</param>
/// <param name="password">密码</param>
/// <param name="tableName">表名</param>
/// <param name="dataBaseName">数据库名</param>
/// <returns></returns>
public string getRowListFromTable(string serverName, string userName, string password, string tableName, string dataBaseName)
{
string result = string.Empty;
string connectionString = string.Empty;
connectionString += "server=" + serverName;
connectionString += ";Pwd=" + password;
connectionString += ";UID=" + userName;
connectionString += ";Database=" + dataBaseName;
string commandString = string.Empty;
commandString += "select name from syscolumns where id=object_id('";
commandString += tableName;
commandString += "')"; SqlConnection sqlConnection = new SqlConnection(connectionString);
SqlCommand sqlCommand = new SqlCommand(commandString, sqlConnection);
SqlDataAdapter dataAdapter = new SqlDataAdapter(commandString, sqlConnection);
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
DataTable dataTable = dataSet.Tables[];
// DataTable dataTable = sqlConnection.GetSchema("Tables");
foreach (DataRow row in dataTable.Rows)
{
result += row[].ToString() + "-";
}
if (result != null)
{
return result;
}
else
{
return "";
}
}
c#获得目标服务器中所有数据库名、表名、列名的实现代码的更多相关文章
- 在LINUX系统中MySQL数据库区分表名的大小写--解决办法
		
因为linux下mysql默认是要区分表名大小写的.mysql是否区分大小写设置是由参数lower_case_table_names决定的, 其中:1)lower_case_table_names = ...
 - SQL Server中查询数据库及表的信息语句
		
/* -- 本文件主要是汇总了 Microsoft SQL Server 中有关数据库与表的相关信息查询语句. -- 下面的查询语句中一般给出两种查询方法, -- A方法访问系统表,适应于SQL 20 ...
 - Sqlserver列出所有数据库名,表名,字段名
		
Sqlserver列出所有数据库名,表名,字段名 1.获取所有数据库名: ? 1 SELECT Name FROM Master..SysDatabases ORDER BY Name 注 ...
 - SQL中查看数据库各表的大小
		
SQL中查看数据库各表的大小 编写人:CC阿爸 2014-6-17 在日常SQL数据库的操作中,如何快速的查询数据库中各表中数据的大小. 以下有两种方法供参考: 第一种: create table # ...
 - jdbc链接数据库,获取表名,字段名和数据
		
import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import ...
 - oracle中,约束、表名、Index等的名称长度限制最大只能30个字符
		
oracle中,约束.表名.Index等的名称长度限制最大只能30个字符
 - 获取Excel工作薄中Sheet页(工作表)名集合
		
#region 获取Excel工作薄中Sheet页(工作表)名集合 02./// <summary> 03./// 获取Excel工作薄中Sheet页(工作表)名集合 04./// < ...
 - oracle 语句之对数据库的表名就行模糊查询,对查询结果进行遍历,依次获取每个表名结果中的每个字段(存储过程)
		
语句的执行环境是plsql的sql窗口, 语句的目的是从整个数据库中的所有表判断 不等于某个字段的记录数 . 代码如下: declare s_sql clob:=''; -- 声明一个变量,该变量用于 ...
 - Windows连接Linux服务器中MySQL数据库-权限配置
		
问题描述 在Windows系统中安装了监控MySQL数据库服务器性能的工具Spotlight on MySQL,利用Spotlight连接Linux服务器中的MySQL,进行相关配置如下: 点击& ...
 
随机推荐
- [翻译]创建ASP.NET WebApi RESTful 服务(8)
			
本章讨论创建安全的WebApi服务,到目前为止,我们实现的API都是基于未加密的HTTP协议,大家都知道在Web中传递身份信息必须通过HTTPS,接下来我们来实现这一过程. 使用HTTPS 其实可以通 ...
 - ArcObjects10.0MapControl不显示地图内容
			
添加MapControl控件,右键属性设置MXD 文档之后,运行显示一片空白.拖放另一个控件axLicenseControl之后OK.
 - [原创]Devexpress XtraReports 系列 4 创建多栏报表
			
昨天我们完成了 [原创]Devexpress XtraReports 系列 3 创建主从报表 今天我们继续学习新的一种报表模式:多栏报表.(Demo源码,数据库最后附上) 或许很多人会问什么是多栏报表 ...
 - USB2.0规范
			
USB是一种支持热插拔的高速串行传输总线,它使用差分信号来传输数据,最高速度可达480Mb/S. USB支持“总线供电”和“自供电”两种供电模式.在总线供电模式下,设备最多可以获得500mA的电流.U ...
 - python svn
			
svn 0.3.36 Downloads ↓ Intuitive Subversion wrapper. Introduction svn is a simple Subversion library ...
 - 显示MYSQL数据库信息
			
显示所有的数据库:show databases 显示一个数据库所有表用:show tables from DatabaseName SELECT table_name FROM information ...
 - POJ 3616 Milking Time (排序+dp)
			
题目链接:http://poj.org/problem?id=3616 有头牛产奶n小时(n<=1000000),但必须在m个时间段内取奶,给定每个时间段的起始时间和结束时间以及取奶质量 且两次 ...
 - AUPE学习第八章------进程控制
			
每个进程都有一个非负整形表示的唯一进程ID. init进程是一号进程,是第一个用户态的进程.它负责内核启动以后启动一个unix系统, 它读取的配置文件一般在/etc/rc*./etc/inittab. ...
 - java_web用户的自动登录模块的实现
			
javaBean的代码 package bean; import java.io.Serializable; public class Admin implements Serializable{ / ...
 - 【原创】[PS技巧]如何制作翘角纸条的阴影效果
			
(从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期 2014-05-19) 在网页设计中经常会用到翘角纸条的效果.如:百度空间首页: pic.1 下面我详细讲解一下这个效果使用PS如何制 ...