【问题标题】:How to check states and decide which part of the code to execute如何检查状态并决定执行代码的哪一部分
【发布时间】:2012-05-25 09:33:01
【问题描述】:

我有这个代码:

//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;
                    }
                }

如果连接状态正常并且与服务器建立连接然后将结果保存在服务器上,我想让我的代码正常工作,如果与服务器的连接失败,则连接并保存到我的本地数据库,这将始终可以访问。

有人可以安排我的代码按我的意愿工作吗,因为我不知道如何实现它。

谢谢

【问题讨论】:

    标签: c# mysql connection


    【解决方案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;
        }
    

    【讨论】:

    猜你喜欢
    • 2018-01-18
    • 2018-12-24
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 2021-07-22
    相关资源
    最近更新 更多