MySqlCommand.ExecuteReader()在Initialization上抛出System.Format异常

时间:2015-04-21 02:12:54

标签: c# mysql guid

所以我正在尝试使用MySqlDataReader从我的数据库中获取数据。我知道数据库确实响应(插入,删除和更新我的程序中的所有工作正常)。

using (MySqlConnection conn = new MySqlConnection(connectionString))
        {
            // Open a connection
            conn.Open();
            MySqlCommand command = conn.CreateCommand();
            command.CommandText = "select * from cs3500_u0848199.PairedGames";

            // Execute the command and cycle through the DataReader object

            using (MySqlDataReader reader = command.ExecuteReader())
            {
                while (reader.Read())
                { /*do something here*/}
            }
        }

问题似乎与命令本身无关,因为该命令在MySQL工作台中有效。无论如何,在执行这行代码时

using (MySqlConnection conn = new MySqlConnection(connectionString))

VS调试器注意到抛出了以下异常

  

System.FormatException未被用户代码
处理   HResult = -2146233033消息= Guid应包含32位数字4   破折号(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。来源= mscorlib程序
  堆栈跟踪:          在System.Guid.TryParseGuidWithNoStyle(String guidString,GuidResult& result)          在System.Guid.TryParseGuid(String g,GuidStyles标志,GuidResult&结果)          在System.Guid..ctor(String g)          at MySql.Data.Types.MySqlGuid.MySql.Data.Types.IMySqlValue.ReadValue(MySqlPacket)   packet,Int64 length,Boolean nullVal)          at MySql.Data.MySqlClient.NativeDriver.ReadColumnValue(Int32 index,MySqlField field,IMySqlValue valObject)          在MySql.Data.MySqlClient.Driver.ReadColumnValue(Int32索引,MySqlField字段,IMySqlValue值)          at MySql.Data.MySqlClient.ResultSet.ReadColumnData(Boolean outputParms)          at MySql.Data.MySqlClient.ResultSet.NextRow(CommandBehavior behavior)          at MySql.Data.MySqlClient.MySqlDataReader.Read()          位于D:\ repositories \ x0848199 \ PS11 \ ToDoService \ BoggleService.svc.cs中的ToDoList.BoggleService.GetBriefStatus(String gameToken):line   443          在SyncInvokeGetBriefStatus(Object,Object [],Object [])          在System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object   实例,对象[]输入,对象[]&输出)          在System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&   rpc)InnerException:

真的不确定为什么它告诉我guid格式,因为我在这段代码中没有使用Guids。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

似乎将;old guids=true;附加到连接字符串可以解决问题。