我想从 Mysql 数据库中获取包含完整详细信息的列架构。
我有两个表,其中 Customer 表架构类似于
而另一个表Orders表架构是这样的
我想根据我的连接查询获取这些列架构
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/