C# insert BDD a partir d'une autre.

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,

Je fais une appli qui au lancement va chercher le contenu d'une base de données MySQL distante, cette table contient environ 1000 enregistrements, le pb c'est que ca plante et je n'ai pas d'exeption.

Voici le code:

MySqlCommand commandServer2 = connMySQL.CreateCommand();
commandServer2.CommandText = "SELECT ID, TitreVF, TitreVO, Genre, Annee, Duree, Synopsis, Acteurs, Realisateurs, EntreeDate, BAChemin, MediaChemin FROM films";
connMySQL.Open();

MySqlDataReader readerMySQL = commandServer2.ExecuteReader();

while (readerMySQL.Read())
{
SqlCeCommand commandLocal2 = connSQL.CreateCommand();
commandLocal2.CommandText = "SELECT COUNT(ID) FROM films WHERE ID = "+ readerMySQL["ID"].ToString() +"";
connSQL.Open();

if(Convert.ToInt32(commandLocal2.ExecuteScalar())==0)
{
SqlCeCommand commandLocalInsert = connSQL.CreateCommand();
commandLocalInsert.CommandText = "INSERT INTO films (TitreVF, TitreVO, Genre, Annee, Duree, Synopsis, Acteurs, Realisateurs, EntreeDate, BAChemin, MediaChemin, ID) VALUES (@TitreVF,@TitreVO,@Genre,@Annee,@Duree,@Synopsis,@Acteurs,@Realisateurs,@EntreeDate,@BAChemin,@MediaChemin,@ID)";

//Préparation des paramètres
SqlCeParameter paramTitreVF = new SqlCeParameter("@TitreVF", SqlDbType.NVarChar, 255);
paramTitreVF.Value = readerMySQL["TitreVF"];
commandLocalInsert.Parameters.Add(paramTitreVF);

SqlCeParameter paramTitreVO = new SqlCeParameter("@TitreVO", SqlDbType.NVarChar, 255);
paramTitreVO.Value = readerMySQL["TitreVO"];
commandLocalInsert.Parameters.Add(paramTitreVO);

SqlCeParameter paramGenre = new SqlCeParameter("@Genre", SqlDbType.NVarChar, 50);
paramGenre.Value = readerMySQL["Genre"];
commandLocalInsert.Parameters.Add(paramGenre);

SqlCeParameter paramAnnee = new SqlCeParameter("@Annee", SqlDbType.NVarChar, 10);
paramAnnee.Value = readerMySQL["Annee"];
commandLocalInsert.Parameters.Add(paramAnnee);

SqlCeParameter paramDuree = new SqlCeParameter("@Duree", SqlDbType.Int, 4);
paramDuree.Value = readerMySQL["Duree"];
commandLocalInsert.Parameters.Add(paramDuree);

SqlCeParameter paramSynopsis = new SqlCeParameter("@Synopsis", SqlDbType.NText, 16);
paramSynopsis.Value = readerMySQL["Synopsis"];
commandLocalInsert.Parameters.Add(paramSynopsis);

SqlCeParameter paramActeurs = new SqlCeParameter("@Acteurs", SqlDbType.NText, 16);
paramActeurs.Value = readerMySQL["Acteurs"];
commandLocalInsert.Parameters.Add(paramActeurs);

SqlCeParameter paramRealisateurs = new SqlCeParameter("@Realisateurs", SqlDbType.NText, 16);
paramRealisateurs.Value = readerMySQL["Realisateurs"];
commandLocalInsert.Parameters.Add(paramRealisateurs);

SqlCeParameter paramEntreeDate = new SqlCeParameter("@EntreeDate", SqlDbType.DateTime, 8);
paramEntreeDate.Value = readerMySQL["EntreeDate"];
commandLocalInsert.Parameters.Add(paramEntreeDate);

SqlCeParameter paramBAChemin = new SqlCeParameter("@BAChemin", SqlDbType.NVarChar, 255);
paramBAChemin.Value = readerMySQL["BAChemin"];
commandLocalInsert.Parameters.Add(paramBAChemin);

SqlCeParameter paramMediaChemin = new SqlCeParameter("@MediaChemin", SqlDbType.NVarChar, 255);
paramMediaChemin.Value = readerMySQL["MediaChemin"];
commandLocalInsert.Parameters.Add(paramMediaChemin);

SqlCeParameter paramID = new SqlCeParameter("@ID", SqlDbType.BigInt, 8);
paramID.Value = readerMySQL["ID"];
commandLocalInsert.Parameters.Add(paramID);

commandLocalInsert.ExecuteNonQuery();
}

else
{
}

connSQL.Close();
}

connMySQL.Close();

2 réponses

  1. Nico# Messages postés 328 Date d'inscription   Statut Membre Dernière intervention   102
     
    Slt,

    Fais sa

    
     try
                {
                    MySqlCommand commandServer2 = connMySQL.CreateCommand();
                    commandServer2.CommandText = "SELECT ID, TitreVF, TitreVO, Genre, Annee, Duree, Synopsis, Acteurs, Realisateurs, EntreeDate, BAChemin, MediaChemin FROM films";
                    connMySQL.Open();
    
                    MySqlDataReader readerMySQL = commandServer2.ExecuteReader();
    
                    while (readerMySQL.Read())
                    {
                        SqlCeCommand commandLocal2 = connSQL.CreateCommand();
                        commandLocal2.CommandText = "SELECT COUNT(ID) FROM films WHERE ID = " + readerMySQL["ID"].ToString() + "";
                        connSQL.Open();
    
                        if (Convert.ToInt32(commandLocal2.ExecuteScalar()) == 0)
                        {
                            SqlCeCommand commandLocalInsert = connSQL.CreateCommand();
                            commandLocalInsert.CommandText =
                                "INSERT INTO films (TitreVF, TitreVO, Genre, Annee, Duree, Synopsis, Acteurs, Realisateurs, EntreeDate, BAChemin, MediaChemin, ID) VALUES (@TitreVF,@TitreVO,@Genre,@Annee,@Duree,@Synopsis,@Acteurs,@Realisateurs,@EntreeDate,@BAChemin,@MediaChemin,@ID)";
    
                            //Préparation des paramètres 
                            SqlCeParameter paramTitreVF = new SqlCeParameter("@TitreVF", SqlDbType.NVarChar, 255);
                            paramTitreVF.Value = readerMySQL["TitreVF"];
                            commandLocalInsert.Parameters.Add(paramTitreVF);
    
                            SqlCeParameter paramTitreVO = new SqlCeParameter("@TitreVO", SqlDbType.NVarChar, 255);
                            paramTitreVO.Value = readerMySQL["TitreVO"];
                            commandLocalInsert.Parameters.Add(paramTitreVO);
    
                            SqlCeParameter paramGenre = new SqlCeParameter("@Genre", SqlDbType.NVarChar, 50);
                            paramGenre.Value = readerMySQL["Genre"];
                            commandLocalInsert.Parameters.Add(paramGenre);
    
                            SqlCeParameter paramAnnee = new SqlCeParameter("@Annee", SqlDbType.NVarChar, 10);
                            paramAnnee.Value = readerMySQL["Annee"];
                            commandLocalInsert.Parameters.Add(paramAnnee);
    
                            SqlCeParameter paramDuree = new SqlCeParameter("@Duree", SqlDbType.Int, 4);
                            paramDuree.Value = readerMySQL["Duree"];
                            commandLocalInsert.Parameters.Add(paramDuree);
    
                            SqlCeParameter paramSynopsis = new SqlCeParameter("@Synopsis", SqlDbType.NText, 16);
                            paramSynopsis.Value = readerMySQL["Synopsis"];
                            commandLocalInsert.Parameters.Add(paramSynopsis);
    
                            SqlCeParameter paramActeurs = new SqlCeParameter("@Acteurs", SqlDbType.NText, 16);
                            paramActeurs.Value = readerMySQL["Acteurs"];
                            commandLocalInsert.Parameters.Add(paramActeurs);
    
                            SqlCeParameter paramRealisateurs = new SqlCeParameter("@Realisateurs", SqlDbType.NText, 16);
                            paramRealisateurs.Value = readerMySQL["Realisateurs"];
                            commandLocalInsert.Parameters.Add(paramRealisateurs);
    
                            SqlCeParameter paramEntreeDate = new SqlCeParameter("@EntreeDate", SqlDbType.DateTime, 8);
                            paramEntreeDate.Value = readerMySQL["EntreeDate"];
                            commandLocalInsert.Parameters.Add(paramEntreeDate);
    
                            SqlCeParameter paramBAChemin = new SqlCeParameter("@BAChemin", SqlDbType.NVarChar, 255);
                            paramBAChemin.Value = readerMySQL["BAChemin"];
                            commandLocalInsert.Parameters.Add(paramBAChemin);
    
                            SqlCeParameter paramMediaChemin = new SqlCeParameter("@MediaChemin", SqlDbType.NVarChar, 255);
                            paramMediaChemin.Value = readerMySQL["MediaChemin"];
                            commandLocalInsert.Parameters.Add(paramMediaChemin);
    
                            SqlCeParameter paramID = new SqlCeParameter("@ID", SqlDbType.BigInt, 8);
                            paramID.Value = readerMySQL["ID"];
                            commandLocalInsert.Parameters.Add(paramID);
    
                            commandLocalInsert.ExecuteNonQuery();
                        }
    
                        
                    }
    
                    
                }
                catch (Exception)
                {
                    
                    throw;
                }
                finally
                {
                    connSQL.Close();
                    connMySQL.Close(); 
                }
                
    


    avec un point d'arret sur le throw et poste mois tout le message d'erreur avec le stacktrace
    0
  2. Utilisateur anonyme
     
    J'ai mis dans un background worker et ca fonctionne mtnt, ca freezer!
    0