mysql - MySQL 和 Visual Studio 无法识别主键
问题描述
我已经尽可能地减少了这个。我收到错误消息:“不支持不返回任何键列信息的选择命令为更新命令生成动态 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,我没有任何运气。
古尔,格雷格。:)
解决方案
找到了各种各样的答案。MySQL 定义中的 Unsigned 肯定会导致连接器或 Visual Studio 阻塞。从列定义中删除它可以使其正常工作。
我可以为我的表使用 Signed BIGINT 主键列。
-gg
推荐阅读
- python - Pandas/Python:分组并根据参考表进行转换
- reactjs - react-redux:从reducer调度动作
- ruby - 无法安装 Home-brew,无法连接到 50.63.202.24 端口 443
- r - 四舍五入到最接近的 10
- python - 给定列的行总和
- sql-server - 如何通过 Management Studio 查找服务器名称登录到 SQL Server?
- c - 如何返回只有偶数/奇数的数组并删除不必要的单元格?
- java - Android Activity 生命周期在锁定解锁设备时存在错误?
- push-notification - 从通知服务扩展更改通知声音
- android - 从 youtube 共享链接时,Android 应用程序不可见