gpt4 book ai didi

c# - 使用c#获取数据库中的所有表名

转载 作者:太空宇宙 更新时间:2023-11-03 11:11:29 25 4
gpt4 key购买 nike

我正在使用 VS2010、.Net 4.0、MS SQL SERVER 2008

我以为我知道如何从数据库中获取所有表名。但是我错了。有了表名,我也得到了 View 名称。但是当我为 Views 做这件事时,我只会得到 Views。我不知道为什么会这样。

这是我的代码,我试过的:

    public DataTable getAllTables(string serverName, string dbName, string authenticationType, string Login, string pass)
{
using (SqlConnection sqlConn = Return_Conn(serverName, dbName, authenticationType, Login, pass))
{
sqlConn.Open();
DataTable dt = sqlConn.GetSchema("Tables");
DataTable dt1 = new DataTable();

string[] column = { "TABLE_NAME" };
dt1 = dt.DefaultView.ToTable("dd", false, column);

sqlConn.Close();
return dt1;
}
}

public DataTable getAllViews(string serverName, string dbName, string authenticationType, string Login, string pass)
{
using (SqlConnection sqlConn = Return_Conn(serverName, dbName, authenticationType, Login, pass))
{
sqlConn.Open();
DataTable dt = sqlConn.GetSchema("Views");
DataTable dt1 = new DataTable();

string[] column = { "TABLE_NAME" };
dt1 = dt.DefaultView.ToTable("dd", false, column);

sqlConn.Close();
return dt1;
}
}

DataTable dt = sqlConn.GetSchema("Tables"); 这一行中,dt 包含所有表和 View 。在 dt 中,Viewstable_type 显示“View”,table 显示“Base表”

但是在 DataTable dt = sqlConn.GetSchema("Views"); 这一行中,dt 只包含 View 。

这里出了什么问题?我该如何解决?

最佳答案

我会运行这样的查询而不是 GetSchema:

SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE='BASE TABLE'

关于c# - 使用c#获取数据库中的所有表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13878046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com