【发布时间】:2015-04-21 02:12:54
【问题描述】:
所以我正在尝试使用 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 Message=Guid 应该包含 32 位数字和 4 破折号(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。来源=mscorlib
堆栈跟踪: 在 System.Guid.TryParseGuidWithNoStyle(字符串 guidString,GuidResult& 结果) 在 System.Guid.TryParseGuid(字符串 g,GuidStyles 标志,GuidResult& 结果) 在 System.Guid..ctor(字符串 g) 在 MySql.Data.Types.MySqlGuid.MySql.Data.Types.IMySqlValue.ReadValue(MySqlPacket 数据包,Int64 长度,布尔 nullVal) 在 MySql.Data.MySqlClient.NativeDriver.ReadColumnValue(Int32 索引,MySqlField 字段,IMySqlValue valObject) 在 MySql.Data.MySqlClient.Driver.ReadColumnValue(Int32 索引,MySqlField 字段,IMySqlValue 值) 在 MySql.Data.MySqlClient.ResultSet.ReadColumnData(布尔 outputParms) 在 MySql.Data.MySqlClient.ResultSet.NextRow(CommandBehavior 行为) 在 MySql.Data.MySqlClient.MySqlDataReader.Read() 在 d:\repositories\x0848199\PS11\ToDoService\BoggleService.svc.cs:line 中的 ToDoList.BoggleService.GetBriefStatus(String gameToken) 443 在 SyncInvokeGetBriefStatus(对象,对象 [],对象 []) 在 System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(对象 实例,Object[] 输入,Object[]& 输出) 在 System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) 内部异常:
真的不确定为什么它告诉我有关 guid 格式的信息,因为我没有在此代码中使用 Guid。 任何帮助将不胜感激。
【问题讨论】:
-
能否贴出cs3500_u0848199.PairedGames表中所有列的列和数据类型?
-
还显示代码块,包括以下行:
BoggleService.svc.cs:line 443以及该行调用中使用的任何类的声明 -
K so 对于配对游戏中的列和数据类型 GameToken char(36) Player2Token char(36) Score1 int(11) Score2 int(11) Board char(16) Duration int(11) StartTime bigint (20)@Ron Beyer
-
包含 BoggleService.svc.cs:line 443 行的代码块已经在我的原始帖子中。第 443 行特别是 while(reader.Read()) 行。我认为相关声明已包含在原始帖子中。如果我弄错了,请告诉我我的误解。 @亚历克斯
-
错误消息似乎表明它在
Guid类型的内容未格式化为Guid的内容上阻塞。