【问题标题】:MySQL and Visual Studio not recognizing primary keyMySQL 和 Visual Studio 无法识别主键
【发布时间】:2021-09-11 05:58:50
【问题描述】:

我已经尽可能地减少了这个。我收到错误消息:“不支持不返回任何键列信息的选择命令为更新命令生成动态 sql”。

这通常意味着我没有主键。但我这样做了,这是它的创建表(MySQL):

CREATE TABLE `testtable1` (
  `test_id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `test_label` varchar(10) NOT NULL,
  PRIMARY KEY (`test_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

MySQL 等是最新稳定版本的全新安装。我的 Visual Studio 是 Community 2019。

我可以在服务器资源管理器中添加数据连接,我可以看到所有两列。这是 testdb 中唯一的表。上面的 create 语句实际上来自该连接,它标识有一个主键(test_id)。查看服务器资源管理器中的列属性会显示其中包含“PRI”的列键属性。好像它知道它是我的主键。

我去添加一个新的winform,只在上面放一个DataGridView。从“选择数据源”的向导中,我选择添加项目数据源并选择数据库、数据集,选择连接字符串,从表中选择所有列,然后单击完成。

那是我得到错误的时候。

没有比这更基本的了。我在搞什么鬼? MySQL 或 Visual Studio 中是否有一些设置错误?这是我第一次尝试 MySQL,我没有任何运气。

咕噜,格雷格。 :)

【问题讨论】:

  • 我在 MS SQL Mgmt Studio 中创建了等效的数据库,连接到服务器资源管理器,然后添加到 DGV,这很有效。 MySQL 数据库仍然无法正常工作。 MSSQL 变体在 Test_ID 字段/列上显示一个关键符号,而 MySQL 变体则没有。

标签: mysql visual-studio winforms


【解决方案1】:

找到了各种各样的答案。 MySQL 定义中的 Unsigned 肯定会导致连接器或 Visual Studio 阻塞。将其从列定义中删除使其能够正常工作。

我的表可以使用 Signed BIGINT 主键列。

-gg

【讨论】:

    猜你喜欢
    • 2010-12-22
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 2020-03-22
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多