从SQL命令“SHOW TABLE STATUS”返回DataTable

时间:2012-10-16 09:52:36

标签: c# .net mysql sql

在mySQL workbench中运行命令时,命令“SHOW TABLE STATUS LIKE'tableName'”返回一个包含23列的行。我想要“Auto_increment”列,为了推理,我们会说我已经知道我可以找到这样的,假设我已经连接,发送查询,并填充了DataTable;

dataTable = mDBConnector.Select("SHOW TABLE STATUS LIKE 'x'");
MessageBox.Show(dataTable.Rows[0][15].ToString());
//alternatively
//MessageBox.Show(dataTable.Rows[0]["Auto_increment"].ToString());

但是,当从我的应用程序中运行查询时,它基本上没有返回...从MySQL工作台中运行时返回预期结果的相同查询。

我确定这与权限没有关系,因为我为了测试而使用root访问权限进行测试,而且我知道这不是我如何从我的应用程序或连接中检索数据,因为我在整个过程中使用它并且从未遇到任何问题。

之前是否有人遇到此问题并知道答案?

编辑:我正在使用的查询如下(我现在正在使用真实的表/列详细信息,所以我将删除它们。在这里撕掉我的头发!)

SELECT * FROM information_schema.tables
WHERE table_schema = 'bf-2300' AND table_name = 'devices';

在MySQL工作台中,我得到以下内容:

test

如您所见,它正确返回值。 但是,当我在我的程序中运行查询并返回数据表时,它不包含此信息,我不知道为什么。这几乎就好像它不是一个普通的DataTable。

我正试图让列“自动增量”,如上所述。通常情况下,我可以选择dataTable.Rows [0] [“colname”],但它们不包含任何值 - 在工作台上运行的查询中,它绝对不是我填充DataTable的方法,因为这些东西在我的程序中完美运行。奇怪的是,它返回的是查询结果列名,而不是该行的信息。

1 个答案:

答案 0 :(得分:1)

另一种也许更好的方法是使用information_schema.table来获取有关表格的信息。

SELECT * FROM information_schema.table
WHERE table_schema = 'db_name' AND table_name = 'table_name';