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

karimbayad Messages postés 5 Date d'inscription mardi 22 novembre 2011 Statut Membre Dernière intervention 12 décembre 2011 - 6 déc. 2011 à 15:32
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 - 6 déc. 2011 à 16:40
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

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
6 déc. 2011 à 15:44
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 ?
0
karimbayad Messages postés 5 Date d'inscription mardi 22 novembre 2011 Statut Membre Dernière intervention 12 décembre 2011
6 déc. 2011 à 16:06
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();
}
0
karimbayad Messages postés 5 Date d'inscription mardi 22 novembre 2011 Statut Membre Dernière intervention 12 décembre 2011
6 déc. 2011 à 16:28
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();
}
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
6 déc. 2011 à 16:40
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
0
Rejoignez-nous