Antwort an „der henry“ verfassen

Hallo Rolf,

vielen Dank und soweit verstanden. Ich habe nun alle Funktionen überprüft und dies geändert. Jetzt habe ich ein Problem, gleiche Fehlermeldung, aber erst beim > 200 Durchlauf, teilweise 500 - 600 Durchläufe bevor der Fehler mit dem datareader kommt.

Fehlerzeile cmd.ExecuteNonQuery();

Hier kommt auch deine Idee mit der sql-Befehlsverkettung vor 👍

Es kommt immer 1-2 mal vorher ein catch, danach der offene DataReader

Der "counter" ist nur zu Testzwecken eingebaut und hat keinerlei Bewandtnis

public static bool write_plcactvalue_database(Dictionary<string, string> plcactvalue)
        {
            string sql = ""; 
            
            // Werte über Parameter hinzufügen
            foreach (var dic in plcactvalue)
            {
                sql += $"UPDATE datapoints SET actvalue = '{MySqlHelper.EscapeString(dic.Value)}' WHERE plcvarname = '{MySqlHelper.EscapeString(dic.Key)}';";
                
                if (Program.debuglevel == 2)
                { Console.WriteLine($"Schlüssel: {dic.Key}, Wert: {dic.Value}"); }
            }

            try
            {
				using (MySqlCommand cmd = new MySqlCommand(sql, connection))
				{
                    cmd.ExecuteNonQuery(); 
                    if (Program.debuglevel == 2)
                    { Console.WriteLine($"SPS-Werte geschrieben: {sql}"); }

                    ConnectSql.sqlProgramm.mycounter += 1;
                    
                    // Console.Clear();
                    Console.WriteLine($"\nCounter: {ConnectSql.sqlProgramm.mycounter}");
				}
				return true;
			}
			catch (Exception e)
				{ Console.WriteLine($"Fehler beim schreiben der SPS-Werte in die Datenbank: {e}"); }
		 return false;
		}

Vielleicht fällt dir oder jemand anderen etwas auf.

Vielen Dank !!!

freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen