0

私はこのコードを持っています:

//open database connection on the server
                con = new MySqlConnection("server=localhost;database=GPS;uid=root;pwd=****");
                con.Open();
                if (con.State == ConnectionState.Closed)
                {
                    cmd = new MySqlCommand("insert into data values (null, ?Parname , ?Parname2, ?Parname3, ?Parname4, ?Parname5, ?Parname6, ?Parname7);", con);
                    cmd.Parameters.Add("?Parname", MySqlDbType.Double).Value = Math.Round(deciLat, 5);
                    cmd.Parameters.Add("?Parname2", MySqlDbType.Double).Value = Math.Round(deciLon, 5);
                    cmd.Parameters.Add("?Parname3", MySqlDbType.Timestamp).Value = DateTime.Now;
                    if (card_number != null)
                    {
                        cmd.Parameters.Add("?Parname4", MySqlDbType.VarChar).Value = card_number;
                    }
                    else
                    {
                        cmd.Parameters.Add("?Parname4", MySqlDbType.VarChar).Value = null;
                    }
                    cmd.Parameters.Add("?Parname5", MySqlDbType.VarChar).Value = ConfigSettings.ReadSetting("reg");
                    cmd.Parameters.Add("?Parname6", MySqlDbType.VarChar).Value = ConfigSettings.ReadSetting("ser");
                    cmd.Parameters.Add("?Parname7", MySqlDbType.Double).Value = ellipHeight;
                    cmd.ExecuteNonQuery();
                    lastDBUpdate = DateTime.Now;
                }
                else
                {
                    // local mysql database
                    con = new MySqlConnection("server=localhost;database=temp_GPS;uid=root;pwd=******");
                    con.Open();
                    if (con.State == ConnectionState.Open)
                    {
                        cmd = new MySqlCommand("insert into temp_data values (null, ?Parname , ?Parname2, ?Parname3, ?Parname4, ?Parname5, ?Parname6, ?Parname7);", con);
                        cmd.Parameters.Add("?Parname", MySqlDbType.Double).Value = Math.Round(deciLat, 5);
                        cmd.Parameters.Add("?Parname2", MySqlDbType.Double).Value = Math.Round(deciLon, 5);
                        cmd.Parameters.Add("?Parname3", MySqlDbType.Timestamp).Value = DateTime.Now;
                        if (card_number != null)
                        {
                            cmd.Parameters.Add("?Parname4", MySqlDbType.VarChar).Value = card_number;
                        }
                        else
                        {
                            cmd.Parameters.Add("?Parname4", MySqlDbType.VarChar).Value = null;
                        }
                        cmd.Parameters.Add("?Parname5", MySqlDbType.VarChar).Value = ConfigSettings.ReadSetting("reg");
                        cmd.Parameters.Add("?Parname6", MySqlDbType.VarChar).Value = ConfigSettings.ReadSetting("ser");
                        cmd.Parameters.Add("?Parname7", MySqlDbType.Double).Value = ellipHeight;
                        cmd.ExecuteNonQuery();
                        lastDBUpdate = DateTime.Now;
                    }
                }

たとえば、接続状態に問題がなく、サーバーとの接続が確立されている場合にコードを機能させ、結果をサーバーに保存します。サーバーへの接続に失敗した場合は、常にアクセス可能なローカルデータベースに接続して保存します。

私はそれを達成する方法がわからないので、誰かが私のコードを私が望むように動作するように調整できますか?

ありがとうございました

4

1 に答える 1

1

関数GetConnection()を作成し、この関数を使用して常に接続を取得します。

コードを書き留めて接続状態を確認し、それに基づいて接続を返します。

public MySqlConnection GetConnection(MySqlConnection con)
{
        if (con.State == ConnectionState.Closed)
       {
           // local mysql database
             con = new MySqlConnection("server=localhost;database=temp_GPS;uid=root;pwd=******");
            con.Open();
       }

          return con;
    }
于 2012-05-25T09:42:15.120 に答える