首页 > 解决方案 > C# .net 与数据库的在线连接

问题描述

我收到错误“Guid 应包含 32 位数字和 4 个破折号 (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。” 在连接到 mysql 数据库并获取数据时,请在此处输入图像描述

我正在使用 Visual Studio 2012。

标签: c#mysql

解决方案


连接器/NET 具有自动CHAR(36)映射列的约定System.Guid。通常在从表中读取数据时会发生这种情况,但是在调用 时听起来像是发生在您身上MySqlConnection.Open(),这是不寻常的。发布完整的异常调用堆栈可以帮助我们确定原因。

一种解决方法可能是添加OldGuids=true到您的连接字符串;这将导致 Connector/NET映射CHAR(36)System.StringBINARY(16)System.Guid当然,如果您BINARY(16)的数据库中有包含 BLOB 数据的列,这可能会导致问题。

最后一种选择是将连接器切换到MySqlConnector并使用其GuidFormat=None连接字符串选项(如果您想禁用所有自动 Guid 映射)。


推荐阅读