C# insert BDD a partir d'une autre.

Résolu/Fermé
dadateite Messages postés 312 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 4 août 2014 - Modifié par dadateite le 8/09/2011 à 21:16
dadateite Messages postés 312 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 4 août 2014 - 9 sept. 2011 à 23:23
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 vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 102
9 sept. 2011 à 23:11
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
dadateite Messages postés 312 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 4 août 2014 180
9 sept. 2011 à 23:23
J'ai mis dans un background worker et ca fonctionne mtnt, ca freezer!
0