2015-04-21 98 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程序
堆棧跟蹤: 在System.Guid.TryParseGuidWithNoStyle(字符串guidString,GuidResult &結果) 在System.Guid.TryParseGuid(字符串克,GuidStyles標誌,GuidResult &結果) 在System.Guid..ctor(字符串克) 在MySql.Data.Types.MySqlGuid.MySql.Data.Types.IMySqlValue.ReadValue(MySqlPacket 分組,Int64的長度,布爾nullVal) 在MySql.Data.MySqlClient.NativeDriver.ReadColumnValue(的Int32索引,MySqlField字段, IMySqlValue valObject) at MySql.Data.MySqlClient.Driver.ReadColumnValue(Int32 index,MySqlField field,IMySqlValue value) at MySql.Data.MySqlClient.ResultSet.ReadColumnData(Boolean outpu tParms) 在MySql.Data.MySqlClient.ResultSet.NextRow(的CommandBehavior行爲) 在MySql.Data.MySqlClient.MySqlDataReader.Read() 在ToDoList.BoggleService.GetBriefStatus(字符串gameToken)在d:\庫\ x0848199 \ PS11 ToDoService \ BoggleService.svc.cs:行 at SyncInvokeGetBriefStatus(Object,Object [],Object []) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance,Object [] inputs,Object [] &輸出) 在System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc & RPC)的InnerException:

真的不確定爲什麼它告訴我關於guid格式,因爲我沒有在這段代碼中使用Guids。 任何幫助將不勝感激。

+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) 的StartTime BIGINT(20) @Ron拜爾 – Thelision

回答

1

它似乎將;old guids=true;附加到連接字符串解決了問題。

+0

這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 – ketan

+0

我不完全確定你的意思是不提供問題的答案。我所做的解決我的錯誤是追加舊的GUID = true;到connectionString變量的末尾。作爲這樣做的結果,錯誤不再存在。這不足以作爲我自己問題的答案嗎?如果是這樣,還有什麼需要完整的答案? @ketan – Thelision

+0

你可以在這裏發佈你的更新代碼。 – ketan

相關問題