显示有关ado.net中数据库的信息

Ara*_*yan 5 c# ado.net sql-server-2008-r2

如何使用ado.net查看curent连接中的所有数据库?然后查看每个数据库中的所有表.

AEM*_*iji 5

它获取所有数据库

它从数据库中获取所有表(此链接已被删除,现在使用此一个.但更改代码很少)

ADO.Net:从SQL服务器表中获取表定义

您可以遍历数据库并获取所有表

  • 第二个链接不再有效......请您更新该链接? (2认同)

HAB*_*JAN 5

要列出所有数据库,您需要指定没有初始数据库的连接字符串.然后,您可以执行" sp_databases "存储过程.

要列出数据库中的所有表,您需要查询INFORMATION_SCHEMA.Tables.

样品

要获取数据库:

System.Data.SqlClient.SqlConnection SqlCon = new System.Data.SqlClient.SqlConnection("server=192.168.0.1;uid=sa;pwd=1234");
SqlCon.Open();
System.Data.SqlClient.SqlCommand SqlCom = new System.Data.SqlClient.SqlCommand();
SqlCom.Connection = SqlCon;
SqlCom.CommandType = CommandType.StoredProcedure;
SqlCom.CommandText = "sp_databases";

System.Data.SqlClient.SqlDataReader SqlDR;
SqlDR = SqlCom.ExecuteReader();

while(SqlDR.Read())
{
   Console.WriteLine(SqlDR.GetString(0));
}
Run Code Online (Sandbox Code Playgroud)

获得表格:

string connectionString = "...";
DataTable tables = new DataTable("Tables");
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));
}
Run Code Online (Sandbox Code Playgroud)