在连接到mysql数据库并获取数据时,出现错误“guid应包含32位带4个破折号(xx-x-x-x-x-)。”请在此处输入图像描述。我正在使用visual studio 2012。
3qpi33ja1#
连接器/网络有一个约定,其中 CHAR(36) 列Map到 System.Guid 自动地。通常在从表中读取数据时会发生这种情况,但在调用 MySqlConnection.Open() ,这是不寻常的。发布完整的异常调用堆栈可以帮助我们确定原因。一种解决方法是添加 OldGuids=true 连接字符串;这将导致连接器/网络Map CHAR(36) 作为 System.String 以及 BINARY(16) 作为 System.Guid . 当然,这会导致问题,如果你有 BINARY(16) 数据库中包含blob数据的列。最后一个选择是将连接器切换到mysqlconnector并使用其 GuidFormat=None 连接字符串选项(如果要禁用所有自动guidMap)。
CHAR(36)
System.Guid
MySqlConnection.Open()
OldGuids=true
System.String
BINARY(16)
GuidFormat=None
1条答案
按热度按时间3qpi33ja1#
连接器/网络有一个约定,其中
CHAR(36)
列Map到System.Guid
自动地。通常在从表中读取数据时会发生这种情况,但在调用MySqlConnection.Open()
,这是不寻常的。发布完整的异常调用堆栈可以帮助我们确定原因。一种解决方法是添加
OldGuids=true
连接字符串;这将导致连接器/网络MapCHAR(36)
作为System.String
以及BINARY(16)
作为System.Guid
. 当然,这会导致问题,如果你有BINARY(16)
数据库中包含blob数据的列。最后一个选择是将连接器切换到mysqlconnector并使用其
GuidFormat=None
连接字符串选项(如果要禁用所有自动guidMap)。