[Bar -> C#]l'insertion de données de fichier txt au base données en c#

Signaler
Messages postés
5
Date d'inscription
mardi 22 novembre 2011
Statut
Membre
Dernière intervention
12 décembre 2011
-
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
-
bnj comment faire pour inserer les données dans une table données par l'utilisateur de fichier txt au base de données

4 réponses

Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Salut,

que contient ton fichier txt ? du plain text ? des données ? avec séparateurs ou longueur fixe ? tu a déjà une table dont le schéma colle aux données de ton fichier text ?
Messages postés
5
Date d'inscription
mardi 22 novembre 2011
Statut
Membre
Dernière intervention
12 décembre 2011

voila mon fichier txt
11 bayad karim
12 ziani jalil
13 souti yasin
14 nabil dirar

j'ai utilise la function suivant mai ça marche pas

public void importation(string FichieUP, string Sepa,string table) {
StreamReader st = new StreamReader(FichieUP);
l = st.ReadLine();
while (l != null)
{
string[] tabb =l.Split(Convert.ToChar(Sepa));
for (int i = 0; i < tabb.Count() - 1; i++)
{
str = str + tabb[i] + "','";
bd.ExecuteCommand("insert into " + table + " values('" + str + "')");
}
l = st.ReadLine();
}
st.Close();
}
Messages postés
5
Date d'inscription
mardi 22 novembre 2011
Statut
Membre
Dernière intervention
12 décembre 2011

voila mon fichier txt
11 bayad karim
12 ziani jalil
13 souti yasin
14 nabil dirar

j'ai utilise la function suivant mai ça marche pas

public void importation(string FichieUP, string Sepa,string table) {
StreamReader st = new StreamReader(FichieUP);
l = st.ReadLine();
while (l != null)
{
string[] tabb =l.Split(Convert.ToChar(Sepa));
for (int i = 0; i < tabb.Count() - 1; i++)
{
str = str + tabb[i] + "','";
bd.ExecuteCommand("insert into " + table + " values('" + str + "')");
}
l = st.ReadLine();
}
st.Close();
}
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Re,

ta boucle est mauvaise, ta requête erronée, et ton objet d'accès à la BDD peut ne pas être correctement initialisé : normale que ça marche pas.

Sympa d'avoir mis un exemple, mais ça me dit pas si les champs sont de longueur fixe (toutes tes lignes sont identiques de ce côté là), ou s'il s'agit d'un séparateur (espace ou tabulation).

En imaginant qu'il s'agisse d'un séparateur (que je passe en param de la fonction ne le connaissant pas) et que tu aies une table "persons" contenant 3 champs (id, prenom, nom), une version pour MySQL devrait être un truc comac (sans gestion des erreurs/exceptions) :

public void InsertDataFile(string filename, char separator, string cnxstr) {
MySqlConnection cnx = new MySqlConnection(cnxstr);
StreamReader sr = new StreamReader(filename);
string rqt = "insert into persons value (@id, @first, @last)";
string line = "";
cnx.Open();
while ((line = sr.ReadLine()) != null) {
string[] vals = line.Split(separator);
MySqlCommand cmd = new MySqlCommand(rqt, cnx);
cmd.Parameters.AddWithValue("@id", vals[0]);
cmd.Parameters.AddWithValue("@first", vals[1]);
cmd.Parameters.AddWithValue("@last", vals[2]);
cmd.ExecuteNonQuery();
}
cnx.Close();
}


PS : faut pas mettre "résolu" sur tous les messages, hein. Surtout que y'a pas la réponse à ton problème dans ceux-ci