C#如何从mysql数据库表中获取行标题

标签 c# mysql

美好的一天,先生和女士。我计划获取所有行标题,如“column_id 和first_name、last_name 等”,并使用 mysql 数据库表中的行标题填充我的列表框。请告诉我如何做到这一点。我不知道该使用 MySqlDataAdapter 或 MySqlDataReader。我是初学者,愿意学习。

        using (MySqlConnection conns2 = new MySqlConnection(connString)) 
        {
            conns2.Open();
            MySqlCommand comm2 = new MySqlCommand("SELECT * FROM table1", 
            conns2);
            MySqlDataAdapter add2 = new MySqlDataAdapter(comm2);
            DataTable dt2 = new DataTable();
            add2.Fill(dt2);
            foreach(DataColumn column in dt2.Columns)
            {
                columnlistbox.Items.Add(dt2.Columns); 
                //it shows "collection" and exactly the number of row header 
                //but it doesn't show like "First name, client_id and last 
                //name"
            }
            conns2.Close();
        }

最佳答案

用于从数据表中获取列名称

如果您需要来自数据库的数据,并将其加载到 DataTable 中(使用 DbDataAdapter 或 DbDataReader),您可以从 DataTable.Columns 集合属性中了解列名称:

foreach (DataColumn col in dt2.Columns)
    columnlistbox.Items.Add(col.ColumnName);

仅从 MySql 数据库获取架构(表、列等)

但是如果您不需要数据库中的任何数据,而只需要其结构,则可以使用 DbDataReader。为了让阅读器加载此数据,必须“模拟”数据库的查询:

using (MySqlConnection conns2 = new MySqlConnection(connString))
{
    conns2.Open();
    MySqlCommand comm2 = new MySqlCommand("SELECT * FROM table1", conns2);

    using (var reader = MySqlCommand.ExecuteReader(CommandBehavior.SchemaOnly))
    {
        reader.Read();
        var dtSchema = reader.GetSchemaTable();

        foreach (DataRow row in tableSchema.Rows)
            columnlistbox.Items.Add(row["ColumnName"]);

    }
}

表格https://stackoverflow.com/a/7159610/1271037 :

关于C#如何从mysql数据库表中获取行标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44740934/

相关文章:

C#:遍历字符串中的子字符串模式

mysql - 如何使用 jruby 访问 mysql 表?

php - 尝试自动将外键值插入到我的 mysql 表中

mysql - 许多表之一的外键?

sql - 如何获得两列之间的差异

c# - 我应该为此 UI 使用什么控件?

c# - asp.net 核心 Razor 页面 'loading indicator'

c# - 可以检测声卡上的分贝级别吗?

MySQL SQL Error more then 1 table select

c# - 为什么在目标框架中需要 .net 4.6.1 是 4.5.2