MySQL Connector/Net を使用して、Mono に次のコードがあります。
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 参照であるため、反対側を確認して、実際に適切なデータが送信され、db の更新が行われることを確認できます。
誰が何をすべきか知っていますか?
ティア、ベンジー
PS: db の更新を除くすべてが機能しています。ここの catch ブロック (簡潔にするために掲載していません) はヒットしません。