【发布时间】:2012-10-16 09:52:35
【问题描述】:
在 mySQL 工作台中运行命令时,命令“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 工作台中,我得到以下信息:
如您所见,它正确返回值。 但是,当我在我的程序中运行查询并返回数据表时,它不包含此信息,我不知道为什么。就好像它不像普通的DataTable一样。
如上所述,我正在尝试获取“自动增量”列。通常我可以选择 dataTable.Rows[0]["colname"] 但这些不包含任何值 - 在工作台中工作的查询上,它绝对不是我填充 DataTable 的方法,因为这些东西在我的程序中完美地工作。奇怪的是它返回的是查询结果列名,而不是该行的信息。
【问题讨论】:
-
您可以使用 mDBConnector.select 执行任何其他查询并查看其获取的结果吗?
-
检查当前数据库。这是正确的吗?尝试使用“SHOW TABLE STATUS FROM db_name ...”语句。
-
@Devart 我尝试了 SHOW TABLE STATUS LIKE 'database.table',它在工作台中没有错误,但对所有列都没有显示。我似乎无法让 "SHOW TABLE STATUS FROM db_name LIKE 'x'; 工作。
-
什么是 MySQL 版本?错误是什么?
-
0 11:35:40 SHOW TABLE STATUS FROM d-b LIKE 'x' 错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“-b LIKE 'x'”附近使用正确的语法。我将连字符放在数据库名称中,因为真实的有一个,而我没有确定这是否会导致问题。