所以我正在尝试使用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=-214623033 Message=Guid应包含32位数字,其中包含4短划线(xxxxxxxx-xxxx-xxxx.xxxx-xxxxxxxxxxxxx)。Source=mscorlib
StackTrace:位于System.Guid.TryParseGuidWithNoStyle(字符串guidString,GuidResult&result)位于System.Guid.TryParseGuid(字符串g、GuidStyle标志、GuidResult和result)在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(布尔输出臂)位于MySql.Data.MySqlClient.ResultSet.NextRow(CommandBehavior行为)位于MySql.Data.MySqlClient.MySqlDataReader.Read()位于d:\repositorys\x0848199\PS11\ToDoService\BoggleService.svc.cs:line中的ToDoList.BoggleService.GetBriefStatus(字符串游戏令牌)443处于SyncInvokeGetBriefStatus(对象,对象[],对象[])位于System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(对象实例,Object[]输入,Object[]&输出)在System.ServiceModel.Dispatcher.DispatchOperationRuntime.IInvokeBegin(MessageRpc&rpc)内部异常:
真的不确定为什么它会告诉我guid格式,因为我在这段代码中没有使用guid。任何帮助都将不胜感激。
将;old guids=true;
附加到连接字符串似乎解决了问题。