さて、C# + Coneector/Net の話に戻りましょう。今回はサーバーの日付と時刻を取得してみたいと思います。サーバーとクライアントの時刻がずれていると、けっこうめんどくさい問題が起こりそうですので、時刻を合わせておくにこしたことはありません。といっても少し前のデータの更新/削除のところで説明したとおり、 ExecuteScalar() を使うだけです。
ExecuteScalar() は戻り値をともなうSQL文を実行したいときに用いるメゾットで、戻り値は常にstring型です。サーバー時間を取得するには、このメゾットを使い、 SELECT NOW() というSQL文をなげてやればなんとかなります。戻り値がstring型なので、DateTime型に変換してあげる必要がありますが、まぁ、まったく問題ないでしょう。すぐにわかるコードを見てみることにしましょう。
たったこれだけです。今回はこれで終わりですね。あとは時間合わせに使うなり、レコードを更新するときにズレを計算して更新するなり、適当に使ってやってください。
C# + Connector/Net でサーバーの時刻を取得する |
ExecuteScalar() は戻り値をともなうSQL文を実行したいときに用いるメゾットで、戻り値は常にstring型です。サーバー時間を取得するには、このメゾットを使い、 SELECT NOW() というSQL文をなげてやればなんとかなります。戻り値がstring型なので、DateTime型に変換してあげる必要がありますが、まぁ、まったく問題ないでしょう。すぐにわかるコードを見てみることにしましょう。
//サーバーに接続
string connstr = "userid=root;password=pass;database=test;Host=localhost";
MySqlConnection conn = new MySqlConnection(connstr);
conn.Open();
//サーバー時間を取得し、DateTime型に変換
DateTime stime = DateTime.Parse
(MySqlHelper.ExecuteScalar(conn, "SELECT NOW()").ToString());
たったこれだけです。今回はこれで終わりですね。あとは時間合わせに使うなり、レコードを更新するときにズレを計算して更新するなり、適当に使ってやってください。