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

Nico# Messages postés 323 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
Utilisateur anonyme
 
J'ai mis dans un background worker et ca fonctionne mtnt, ca freezer!
0