获得目标服务器中所有数据库名、表名、列名


  1       /// <summary>
2 /// 获得目标服务器所有数据库名
3 /// </summary>
4 /// <param name="serverName"></param>
5 /// <param name="userName"></param>
6 /// <param name="password"></param>
7 public void getDataBaseNameList(string serverName, string userName, string password)
8 {
9 SQLDMO.Application sqlApplication = new SQLDMO.ApplicationClass();
10 SQLDMO.SQLServer sqlServer = new SQLDMO.SQLServerClass();
11
12 sqlServer.Connect(serverName, userName, password); // 连接服务器
13
14 foreach (SQLDMO.Database databBase in sqlServer.Databases)
15 {
16 if (databBase.Name != null)
17 {
18 this.DataBaseTreeView.Nodes.Add(databBase.Name);
19
20 getDataBaseTableList(serverName, userName, password, databBase.Name);
21 }
22 }
23 }
24
25
26 /// <summary>
27 /// 加载数据库中表
28 /// </summary>
29 /// <param name="serverName">服务器名</param>
30 /// <param name="userName">用户名</param>
31 /// <param name="password">密码</param>
32 /// <param name="dataBaseName">数据库名</param>
33 private void getDataBaseTableList(string serverName, string userName, string password, string dataBaseName)
34 {
35 SQLDMO.SQLServer Server = new SQLDMO.SQLServerClass();
36
37 //连接到服务器
38 Server.Connect(serverName, userName, password);
39
40 //对所有的数据库遍历,获得指定数据库
41 for (int i = 0; i < Server.Databases.Count; i++)
42 {
43 //判断当前数据库是否是指定数据库
44 if (Server.Databases.Item(i + 1, "dbo").Name == dataBaseName)
45 {
46 //获得指定数据库
47 SQLDMO._Database db = Server.Databases.Item(i + 1, "dbo");
48
49 //获得指定数据库中的所有表
50 for (int j = 0; j < db.Tables.Count; j++)
51 {
52 this.DataBaseTreeView.Nodes[i].Nodes.Add(db.Tables.Item(j + 1, "dbo").Name);
53 }
54 }
55 }
56 }
57
58
59 /// <summary>
60 /// 获得表中所有列名
61 /// </summary>
62 /// <param name="serverName">服务器名</param>
63 /// <param name="userName">用户名</param>
64 /// <param name="password">密码</param>
65 /// <param name="tableName">表名</param>
66 /// <param name="dataBaseName">数据库名</param>
67 /// <returns></returns>
68 public string getRowListFromTable(string serverName, string userName, string password, string tableName, string dataBaseName)
69 {
70 string result = string.Empty;
71
72 string connectionString = string.Empty;
73 connectionString += "server=" + serverName;
74 connectionString += ";Pwd=" + password;
75 connectionString += ";UID=" + userName;
76 connectionString += ";Database=" + dataBaseName;
77
78 string commandString = string.Empty;
79 commandString += "select name from syscolumns where id=object_id(‘";
80 commandString += tableName;
81 commandString += "‘)";
82
83
84 SqlConnection sqlConnection = new SqlConnection(connectionString);
85 SqlCommand sqlCommand = new SqlCommand(commandString, sqlConnection);
86
87 SqlDataAdapter dataAdapter = new SqlDataAdapter(commandString, sqlConnection);
88
89 DataSet dataSet = new DataSet();
90 dataAdapter.Fill(dataSet);
91
92 DataTable dataTable = dataSet.Tables[0];
93
94 // DataTable dataTable = sqlConnection.GetSchema("Tables");
95 foreach (DataRow row in dataTable.Rows)
96 {
97 result += row[0].ToString() + "-";
98 }
99
100 if (result != null)
101 {
102 return result;
103 }
104 else
105 {
106 return "0";
107 }
108 }

获得目标服务器中所有数据库名、表名、列名

时间: 2024-11-08 14:12:15

获得目标服务器中所有数据库名、表名、列名的相关文章

c#获得目标服务器中所有数据库名、表名、列名的实现代码

/// <summary> /// 获得目标服务器所有数据库名 /// </summary> /// <param name="serverName"></param> /// <param name="userName"></param> /// <param name="password"></param> public void getDataB

SQL中查看数据库各表的大小

SQL中查看数据库各表的大小 编写人:CC阿爸 2014-6-17 在日常SQL数据库的操作中,如何快速的查询数据库中各表中数据的大小. 以下有两种方法供参考: 第一种: create table #t(name varchar(255), rows bigint, reserved varchar(20), data varchar(20), index_size varchar(20), unused varchar(20)) exec sp_MSforeachtable "insert i

获取Excel工作薄中Sheet页(工作表)名集合

#region 获取Excel工作薄中Sheet页(工作表)名集合 /// <summary> /// 获取Excel工作薄中Sheet页(工作表)名集合 /// </summary> /// <param name="excelFile">Excel文件名及路径,EG:C:\Users\JK\Desktop\导入测试.xls</param> /// <returns>Sheet页名称集合</returns> pr

MySQL数据库修改表名

MySQL数据库修改表名,比如把表FaceAppVersion 修改为AppVersion,SQL如下: rename table FaceAppVersion to AppVersion; 执行如下: rename table FaceAppVersion to AppVersion > OK > 时间: 0.033s 原文地址:https://www.cnblogs.com/JohanChan/p/12058967.html

java连接sqlserver2008报错 java.sql.SQLException: 对象名 &#39;表名&#39; 无效.

注意:c3p0的数据库配置方式为: <named-config name="sqlsvr"> <property name="driverClass">net.sourceforge.jtds.jdbc.Driver</property> <property name="jdbcUrl">jdbc:jtds:sqlserver://localhost:1433/WaterNet_DaFeng<

C#获取oracle数据库某表的列名和数据类型【转载】

C#获取oracle数据库某表的列名和数据类型的sql语句为: select column_name,data_type ,data_length,data_precision,data_scale from user_tab_columns [where table_name=表名] 关于此sql语句的说明: column_name:某表列名(varchar2(30)); data_type:某表列的数据类型(varchar2(106)); data_length:某表列的长度(number)

oracle 语句之对数据库的表名就行模糊查询,对查询结果进行遍历,依次获取每个表名结果中的每个字段

语句的执行环境是plsql的sql窗口, 语句的目的是从整个数据库中的所有表判断 不等于某个字段的记录数 . 代码如下: declare s_sql clob:=''; -- 声明一个变量,该变量用于存储查询的sql语句 v_cityCode varchar2(20); -- 每个sql语句执行完的查询结果 code varchar2(20); -- 查询条件 begin -- 开启事务 code :='110112'; for wf in(select table_name from user

数据库的表名字段名大小写问题

今天发现它真的是一个问题. 拿我最喜欢的Oracle来说吧.一般情况下,建表不管大小写,建完表名.字段名总是大写的,这样你不得不在单词之间加下划线,从而增加了字段名长度,有时就超长了.在select的结果中显示也不美观.Oracle也支持以双引号括起来的字段名,不过,你可要注意啦,用"Ok"建的字段名用"OK"."ok"和Ok都是查不到的,必须用"Ok".我只想说一句,Oracle在这点上你就搞不懂用户的需求了吧.也许Orac

sql 查询所有数据库、表名、表字段总结

转自:http://www.cnblogs.com/aflyfly/archive/2011/08/10/2133546.html  錒飛 ms sql server1.查询所有表select [id], [name] from [sysobjects] where [type] = 'u' order by [name]2.查询所有数据库3.select [name] from [sysdatabases] order by [name]查询表中字段 select [name] from [s