WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Behöver hjälp med databas-anslutning som inte stänger (MySQL) (https://www.wn.se/forum/showthread.php?t=1070066)

naak2803 2019-04-23 14:32

Behöver hjälp med databas-anslutning som inte stänger (MySQL)
 
Halloj,

har upplevt att jag ibland får timeout, seg vid första anropet, osv vid uppkoppling mot mysql-db som ligger hos Loopia.

Enligt Loopia stänger jag inte connection till db på ett korrekt sätt. Men jag tycker jag stänger den. Rätta mig gärna om jag har fel. Här nedan finner ni den koden jag använder för en SelectCommand och en för ExecuteNonQuery.

Formaterad kod: https://paste.ofcode.org/985qde6ZTXDmDm4VXHnjU7

HTML-kod:

List<MySqlParameter> param = new List<MySqlParameter>();
    string strConnectionString = "server=mysqlXXX.loopia.se;uid=XXX;pwd=XXX;database=XXX;convert zero datetime=True";

private void ExecuteNonQuery(string strSQL, List<MySqlParameter> parameters)
    {

        using (MySqlConnection connection = new MySqlConnection(strConnectionString))
        {
            connection.Open();
            using (MySqlCommand command = new MySqlCommand(strSQL, connection))
            {
                foreach (MySqlParameter param in parameters)
                    command.Parameters.AddWithValue(param.ParameterName, param.Value);

                command.ExecuteNonQuery();
            }
        }
    }

private DataSet getData(string query, List<MySqlParameter> parameters)
    {
        using (MySqlConnection connection = new MySqlConnection(strConnectionString))
        {
            MySqlDataAdapter da = new MySqlDataAdapter();
            DataSet ds = new DataSet();

            connection.Open();
            using (MySqlCommand command = new MySqlCommand(query, connection))
            {
                foreach (MySqlParameter param in parameters)
                    command.Parameters.AddWithValue(param.ParameterName, param.Value);

                da.SelectCommand = command;
            }

            da.Fill(ds);

            return ds;
        }
    }

//Get all customer
public DataSet GetSCustomers()
    {
        var sql = $"SELECT * FROM Customer ";

        param.Clear();
        return getData(sql, param);
    }

//Update customer pin code
public void UpdateCustomerPinCode(string customerId, int pin)
    {
        var sql = $"UPDATE Customer SET pin = @pin WHERE customerId = @customerId;

        param.Clear();
        param.Add(new MySqlParameter("@customerId", customerId));
        param.Add(new MySqlParameter("@pin", pin));

        ExecuteNonQuery(sql, param);
    }



Alla tider är GMT +2. Klockan är nu 17:07.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson