Witam Forumowiczów
proszę Was o pomoc w pewnej sprawie.
Wywołuje eventa (c# windows form) którego zadaniem jest dodanie do bazy danych MySQL INSERTA...
Zamiast 1 wpisuj tworzą się 2 identyczne wpisy (różnią się tylko autoincrementem)
Nie wiem dlaczego INSERT jest duplikowany. Sprawdzałem Console.WriteLine... i tutaj polecenie wykonuje się tylko 1 raz. Natomiast w bazie tworzą się 2 wiersze.
void schedulerStorage_AppointmentInserting(object sender, PersistentObjectCancelEventArgs e)
{
Console.WriteLine("AppointmentInserting");
Appointment apt = e.Object as Appointment;
if (apt != null)
{
string rem = "";
string res = "";
string losowa = RandomString(10);
try
{
if (apt.HasReminder == true)
{
rem = "<Reminders><Reminder AlertTime=\"" + apt.Reminder.AlertTime + "\" /></Reminders>";
}
else
{
rem = "";
}
res = "<ResourceIds><ResourceId Type=\"System.Int32\" Value=\""+ apt.ResourceId + "\" /></ResourceIds>";
}
catch { }
Console.WriteLine(losowa);
wykonaj_zapytanie_sql("INSERT INTO `terminarz_appointments` (`Subject`,`StartTime`,`EndTime`,`Description`,`Location`,`Label`,`Status`,`AllDay`,`ReminderInfo`,`EventType`,`ResourceId`,`id_losowa`) VALUES('" + apt.Subject + "', '" + apt.Start + "', '" + apt.End + "', '" + apt.Description + "', '" + apt.Location + "', '" + apt.LabelId + "', '" + apt.StatusId + "', '" + apt.AllDay + "', '" + rem + "', '" + res + "' , '" + res + "', '" + losowa + "');");
}
}
private void wykonaj_zapytanie_sql(string zapytanie)
{
try
{
try { global_mysql_rdr.Close(); global_mysql_cmd.Dispose(); global_mysql_conn.Close(); }
catch { }
global_mysql_conn = new MySqlConnection(connectionString);
global_mysql_conn.Open();
Console.WriteLine(zapytanie);
global_mysql_cmd = new MySqlCommand(zapytanie, global_mysql_conn);
global_mysql_rdr = global_mysql_cmd.ExecuteReader();
}
catch
{
try { global_mysql_rdr.Close(); global_mysql_cmd.Dispose(); global_mysql_conn.Close(); }
catch { }
}
finally
{
try { global_mysql_rdr.Close(); global_mysql_cmd.Dispose(); global_mysql_conn.Close(); }
catch { }
}
}