如何在c#中计算表的数量?

本文关键字:计算 | 更新日期: 2023-09-27 18:07:23

我如何使代码获得表的数量到一个链接文本框在给定的数据库?我正在使用visual studio 2013,我是新手。我使用数据库服务器ms sql.

public static List<string> GetTables(string connectionString)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        DataTable schema = connection.GetSchema("Tables");
        List<string> TableNames = new List<string>();
        foreach (DataRow row in schema.Rows)
        {
          TableNames.Add(row[0].ToString());
        }
        return TableNames;
    }
}

如何在c#中计算表的数量?

老实说,我不明白这个问题。您需要给定数据库中的表计数。数据库由连接字符串指定。您已经有了返回包含所有表的DataTable的代码。

这就是缺失的部分。因为connection.GetSchema("Tables")也返回视图,如果你想计数这两个,你准备好了:

DataTable schema = connection.GetSchema("Tables");
int tableAndViewCount = schema.Rows.Count;

如果你只想计数表而不包括视图:

int tableCount = schema.AsEnumerable().Count(t => t.Field<string>("TABLE_TYPE") == "BASE TABLE");

使用下面的查询获取表的计数,只需在应用程序中添加该查询。

SELECT COUNT(*) from information_schema.tables
WHERE table_type = 'base table'

试试这个查询

select * from sys。表