2015-04-21 2 views
0

Так что я пытаюсь использовать MySqlDataReader для получения данных из моей базы данных. Я знаю, что база данных действительно отвечает (вставляем, удаляем и обновляем всю работу в моей программе).MySqlCommand.ExecuteReader() бросает исключение System.Format при инициализации

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
StackTrace: в System.Guid.TryParseGuidWithNoStyle (String guidString, GuidResult & результат) на System.Guid.TryParseGuid (String г, GuidStyles флагов, GuidResult & результат) на System.Guid..ctor (String г) на MySql.Data.Types.MySqlGuid.MySql.Data.Types.IMySqlValue.ReadValue (MySqlPacket пакетов, длина Int64, Boolean nullVal) на MySql.Data.MySqlClient.NativeDriver.ReadColumnValue (Int32 индекс, MySqlField поле, IMySqlValue valObject) на MySql.Data.MySqlClient.Driver.ReadColumnValue (индекс Int32, поле MySqlField, значение IMySqlValue) на MySql.Data.MySqlClient.ResultSet.ReadColumnData (булевский outpu tParms) на MySql.Data.MySqlClient.ResultSet.NextRow (поведение CommandBehavior) на MySql.Data.MySqlClient.MySqlDataReader.Read() в ToDoList.BoggleService.GetBriefStatus (String gameToken) в D: \ хранилищами \ x0848199 \ PS11 \ ToDoService \ BoggleService.svc.cs: линия в SyncInvokeGetBriefStatus (Object, Object [], Object []) в System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke (Object например, Object [] входы, объект [] & выходов) на System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin (MessageRpc & RPC) InnerException:

Действительно не уверен, почему он говорит мне о формате guid, так как я не использую гиды в этом коде. Любая помощь будет принята с благодарностью.

+0

Можете ли вы разместить столбцы и типы данных всех столбцов в таблице cs3500_u0848199.PairedGames? –

+0

Также покажите блок кода, включающий строку: 'BoggleService.svc.cs: строка 443' и объявление любых классов, используемых в вызове в этой строке – Alex

+0

K, поэтому для столбцов и типов данных в парных играх GameToken char (36) Player2Token символ (36) Score1 INT (11) Score2 INT (11) плата символ (16) Длительность INT (11) время_запуска BIGINT (20) @Ron Бейер – Thelision

ответ

1

похоже, что добавление ;old guids=true; к строке подключения разрешило проблему.

+0

Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы будете быть в состоянии [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment). – ketan

+0

Я не совсем уверен, что вы подразумеваете под этим, не дает ответа на вопрос. То, что я сделал, чтобы решить мою ошибку, - добавить старые команды = true; до конца переменной connectionString. В результате этого ошибка больше не сохраняется. Неужели это недостаточно для ответа на мой собственный вопрос? Если да, то что еще потребуется для полного ответа? @ketan – Thelision

+0

Здесь вы можете опубликовать обновленный код. – ketan

Смежные вопросы