c# - 从 mysql 数据表的表中获取列模式

标签 c# mysql information-schema

我想从 Mysql 数据库中获取包含完整详细信息的列架构。

我有两个表,其中 Customer 表架构类似于

enter image description here

而另一个表Orders表架构是这样的

enter image description here

我想根据我的连接查询获取这些列架构

using (MySqlConnection myConnection = new MySqlConnection("Server=xxxx;Uid=is;Pwd=password;Database=mydatabse"))
{
    using (MySqlCommand cmd = new MySqlCommand("SELECT a.CustomerID, a.PostalCode, b.Freight, b.ShippedDate 
                                                FROM orders b, customers a 
                                                WHERE a.CustomerID = b.CustomerID Limit 5;", myConnection))
    {
        myConnection.Open();
        using (MySqlDataReader mdr = cmd.ExecuteReader())
        {
            DataSet ds = new DataSet();
            ds.Tables.Add("Customers");

            mdr.Read();
            DataRow dr;
            dt.Columns.Add("ColName");
            dt.Columns.Add("ColType");

            for (int k = 0; k <= mdr.FieldCount - 1; k++)
            {
                dr = dt.NewRow();
                dr["ColName"] = mdr.GetName(k);
                dr["ColType"] = mdr.GetDataTypeName(k);
                dt.Rows.Add(dr);
            }
        }
    }
}

我需要我在连接查询中使用的所选列的完整详细架构。 我已使用 GetDataTypeName() 检索列类型,但它仅返回数据类型。

我找到了这个查询

select * from INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'nsightsmysqldata' AND TABLE_NAME = 'customers';

它返回与该表相关的所有详细信息,但我只需要我在上面的连接查询中使用的那些列详细信息。

请提供可能的解决方案。

最佳答案

事实证明,您可以使用 connection object

好吧,至少它在 powershell 中对我有用。

$conn.GetSchema("Columns") 将当前数据库中的每个列模式作为 DataTable 返回

关于c# - 从 mysql 数据表的表中获取列模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34396317/

相关文章:

c# - 在ViewModel中公开属性的正确方法

php - 乘以货币兑换列

mysql - 动态日期时间 SELECT 查询

mysql - 删除今天创建的表

mysql - 如何在 MySQL 中查找生成的列定义

c# - WinForms 中的数据绑定(bind)执行异步数据导入

c# - 如何以编程方式在 C# 的 Excel 单元格中插入新行?

c# - 在 MVVM 中给出一些命令来查看

java - 如何将 MySQL 异常传播到 Java 程序?

mysql - 可以在 mysql (5.5) 中创建模式 INFORMATION_SCHEMA 中表的触发器吗?