gpt4 book ai didi

c# - 如何从 MySQL 数据库中获取表名的 `List`?

转载 作者:行者123 更新时间:2023-11-29 01:22:38 25 4
gpt4 key购买 nike

我怎样才能得到 List<string> MySQL 数据库中包含的所有表名?

我想将一个完整的数据库加载到一个 DataSet 中,但据我了解,似乎 MySqlDataAdapter.Fill() 只在单个表上运行,对吗?这就是我想要使用表字符串集合的原因。

编辑:

  1. 我寻找正确的查询:尽管数据库只包含 3 个表,但以下返回 59 个不同的项目:

        MySqlCommand command = new MySqlCommand("SELECT table_name FROM information_schema.tables where table_type = 'BASE TABLE'", connection);
    var result = command.ExecuteReader();
  2. 我寻找 C# 代码来将查询结果解析为 List<string> .

最佳答案

使用 Entity fraemwork,将您的架构添加到 dbcontext,然后您可以制作如下内容:

var tableNames = context.MetadataWorkspace.GetItems(DataSpace.SSpace)
.Select(t => t.Name)
.ToList();

编辑:

或者,您可以使用普通的 sql 查询(例如使用 Show tables)读取表名,并将它们解析为如下列表:

List<String> Tablenames = new List<String>();

using(SqlConnection connection = new SqlConnection("conn_string"))
{
string query = "show tables from YourDB";
SqlCommand command = new SqlCommand(query, connection);
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Tablenames.Add(reader.GetString(0));
}
}
}

关于c# - 如何从 MySQL 数据库中获取表名的 `List<string>`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14251639/

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