【问题标题】:C# .net online connection with databaseC# .net 与数据库的在线连接
【发布时间】:2018-08-13 12:47:29
【问题描述】:

我收到错误“Guid 应包含 32 位数字和 4 个破折号 (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。”同时连接到mysql数据库并获取数据enter image description here

我正在使用 Visual Studio 2012。

【问题讨论】:

标签: c# mysql


【解决方案1】:

Connector/NET 有一个约定,其中 CHAR(36) 列会自动映射到 System.Guid。通常在从表中读取数据时会发生这种情况,但在您调用MySqlConnection.Open() 时听起来会发生这种情况,这是不寻常的。发布完整的异常调用堆栈可能有助于我们确定原因。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    相关资源
    最近更新 更多