作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我怎样才能得到 List<string>
MySQL 数据库中包含的所有表名?
我想将一个完整的数据库加载到一个 DataSet 中,但据我了解,似乎 MySqlDataAdapter.Fill() 只在单个表上运行,对吗?这就是我想要使用表字符串集合的原因。
编辑:
我寻找正确的查询:尽管数据库只包含 3 个表,但以下返回 59 个不同的项目:
MySqlCommand command = new MySqlCommand("SELECT table_name FROM information_schema.tables where table_type = 'BASE TABLE'", connection);
var result = command.ExecuteReader();
我寻找 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/
我是一名优秀的程序员,十分优秀!