C#.net与数据库的在线连接

时间:2018-08-13 12:47:30

标签: c# mysql

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

我正在使用Visual Studio 2012。

1 个答案:

答案 0 :(得分:0)

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

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

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