我在 Mono 中有以下代码,使用 MySQL 连接器/网络:
try
{
MatchPersonResult mpr = personServ.MatchPerson(p, "MatchAndStore", null);
using(MySqlCommand successcmd = new MySqlCommand())
{
successcmd.CommandText = "UPDATE myccontacts SET mcid = @mcid, matchresult = @mr, datetimematched = @dtm WHERE id = @id";
successcmd.Connection = conn;
successcmd.Parameters.Add("@mcid", MySqlDbType.Int32).Value = int.Parse(mpr.PersonID);
successcmd.Parameters.Add("@mr", MySqlDbType.Enum).Value = mpr.MatchResultStatus;
successcmd.Parameters.Add("@dtm", MySqlDbType.DateTime).Value = DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-" + DateTime.Now.Day.ToString() + " " + DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString() + ":" + DateTime.Now.Second.ToString();
successcmd.Parameters.Add("@id", MySqlDbType.Int32).Value = person["id"];
successcmd.ExecuteNonQuery();
Console.WriteLine(mpr.PersonID);
}
}
执行查询时,表实际上并没有更新任何内容。我在 Console.WriteLine 调用上设置了一个断点,这样我就可以检查发生了什么,当它被击中时,我使用代码中提到的 id 加载行并且它尚未更新。即使我不调试而只是让代码执行,我也看到数据库没有发生任何事情。为清楚起见 - personServ.MatchPerson 实际上是导入到我的解决方案中的 Web 参考,因此我可以在另一端检查并确实看到正确的数据已发送过来,并且应该进行数据库更新。
有谁知道该怎么做?
TIA,本杰
PS:除了数据库更新之外的所有东西都在工作——这里的catch块(为了简洁起见没有发布)永远不会被击中。