Recuperer des données d un fichier txt et les inserer dans une base de donnée sq [Résolu]

amirirn1 45 Messages postés lundi 7 février 2005Date d'inscription 16 juin 2006 Dernière intervention - 7 févr. 2005 à 15:40 - Dernière réponse : MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention
- 11 févr. 2005 à 20:22
Salut ,
Je dois recuperer des champs dans un ficher txt et les inserer dans des tables d une base de donnée sql Server ,
La taille des champs du fichier .txt je les connais .je dois faire ça en C#
Donc j ouvre le fichier txt je lis x caracter et je l insere dans la table.
Si qcq un a une bonne idée, je le remercie d avance.
Afficher la suite 

Votre réponse

16 réponses

Meilleure réponse
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 11 févr. 2005 à 20:22
1
Merci
Pour transformer ton string en int, tu as la fonction int.Parse(tonString);



Et sinon, il faut que tu indique a ton sqlCommand quelle connexion tu va utiliser, il me semble.

SqlCommand addEmp = new

SqlCommand("INSERT INTO ATC
('"+aMettreEnBdd+"','"+aMettreEnBdd+"','"+aMettreEnBdd+"','"+aMettreEnBdd+"','"+aMettreEnBdd+"'",
_conn);




N'oublies pas de valider les réponses qui ont pu t'aider, pour que
les prochains qui auront les memes problemes que toi puissent
facilement trouver leur chemin


a++





Mx

Merci MorpionMx 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de MorpionMx
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 7 févr. 2005 à 16:23
0
Merci
Oui ta méthode est faisable... qu'est ce qui te chagrine ?

Pour récuperer du texte entre x et y caracteres, tu as la méthode String.Substring(index, longueur).

Et pour la base de données, en gros, il te
faut un objet SqlConnection et un objet SqlCommand... Tu crées une
requete sous
forme de string que tu associes a ton object SqlCommand, tu ouvre ta
connexion, tu execute la requeste avec SqlCommand.ExecuteNonQuery(), et
tu fermes ta Connexion.



Si tu veux obtenir d'autres informations, n'hésite pas a poser des infos plus précises :)




Mx
Commenter la réponse de MorpionMx
amirirn1 45 Messages postés lundi 7 février 2005Date d'inscription 16 juin 2006 Dernière intervention - 7 févr. 2005 à 16:40
0
Merci
Merci beaucoup
Mais peux tu me donner aussi les fonction exactes pour l ouverture du ficher et aussi pour detecter la fin du fichier et de passer à la ligne suivante.
Merci
Commenter la réponse de amirirn1
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 7 févr. 2005 à 17:09
0
Merci
Bien sur,



Pour ouvrir un fichier, tu as la classe System.IO.StreamReader.

Et avec le StreamReader, tu as plusieurs méthodes, telles que
ReadToEnd(), ReadLine() et ReadBlock() qui te retournent tout les 3 une
string (ce qui a été lu)



Tu peux aussi, si tu veux, mettre chaque ligne dans une string (si tu
veux faire plusieurs traitement dans une ligne). Petit exemple :



StreamReader sr = new StreamReader( fileName, ASCIIEncoding.Default);



// Le fichier est découpé en lignes

string[] lines = sr.ReadToEnd().Split('\n');;



// On va traiter le fichier ligne par ligne

for(int i = 0; i < lines.Length; i++)

{

// On récupere les 10 premiers chars pour les mettre en bdd

string aMettreEnBdd = lines[i].Substring(0, 10)

string aMettreEnBdd2 = lines[i].Substring(15, 10);

...



}


Si j'avais plus de temps, je pourrais mettre l'acces et l'envoi vers la bdd. Si tu as besoin, je le ferais tout a l'heure



Bon courage.
Mx
Commenter la réponse de MorpionMx
amirirn1 45 Messages postés lundi 7 février 2005Date d'inscription 16 juin 2006 Dernière intervention - 8 févr. 2005 à 08:43
0
Merci
je te remercie ,
tu as mis ce que je voulais , je vais me debrouiller avec ça c est dejà tres bien .
Pour ce qui est la base de donnée je sais comment ça marche.
Commenter la réponse de amirirn1
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 8 févr. 2005 à 08:52
0
Merci
Juste une petit precision, dans les paramètres du substring, il faut
préciser l'index du premier caractere, et la longueur (non pas l'index
du dernier caractere). Je dis ca parce qu'a chaque fois je me fais
avoir...

Mx
Commenter la réponse de MorpionMx
amirirn1 45 Messages postés lundi 7 février 2005Date d'inscription 16 juin 2006 Dernière intervention - 10 févr. 2005 à 10:54
0
Merci
Salut ,
j ai cette erreur là qd je vais lire le fichier

Une exception non gérée du type 'System.ArgumentOutOfRangeException' s'est produite dans mscorlib.dll


Informations supplémentaires : Index and length must refer to a location within the string.

à remarquer que j ai du supprimer la l argument ASCIIEncoding.Default parce que j avais un probleme dans la compilation.

StreamReader sr = new StreamReader( fileName, ASCIIEncoding.Default);


if (openFile.ShowDialog()==DialogResult.OK)


texte2Open.Text=openFile.FileName;


StreamReader sr =
new StreamReader( texte2Open.Text);





string[] lines = sr.ReadToEnd().Split('\n');;



// On va traiter le fichier ligne par ligne



for(
int i = 0; i < lines.Length; i++)


{



// On récupere les 5 premiers chars pour les mettre en bdd



string aMettreEnBdd = lines[i].Substring(0, 5);



text.Text=aMettreEnBdd;






}
Commenter la réponse de amirirn1
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 10 févr. 2005 à 12:37
0
Merci
Les strings sont en fait un tableau de caracteres. Ton erreur voudrait
dire alors que soit ta ligne est vide (le caractere lines[i][0]
n'existe pas), ou que la chaine fais moins de 5 caracteres !

Vérifies bien la taille de tes "lignes", en gros

Mx
Commenter la réponse de MorpionMx
amirirn1 45 Messages postés lundi 7 février 2005Date d'inscription 16 juin 2006 Dernière intervention - 11 févr. 2005 à 09:58
0
Merci
ok ça a marché man !!
Commenter la réponse de amirirn1
amirirn1 45 Messages postés lundi 7 février 2005Date d'inscription 16 juin 2006 Dernière intervention - 11 févr. 2005 à 09:58
0
Merci
ok ça a marché man !!
Commenter la réponse de amirirn1
amirirn1 45 Messages postés lundi 7 février 2005Date d'inscription 16 juin 2006 Dernière intervention - 11 févr. 2005 à 10:41
0
Merci
encore moi !!,
pour recuperer le nom d un fichier avec son extension je fais

if (openFile.ShowDialog()==DialogResult.OK)


texte2Open.Text=openFile.FileName;

mais je recupere l adresse de l emplacement du fichier : {Text=@"C:\Documents and Settings\users\My Documents\Delphi\ATC.TXT"}
mais moi ce qui m' intresse c est ATC.TXT

tu sais me dire comment recuperer ATC.TXT
Merci
Commenter la réponse de amirirn1
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 11 févr. 2005 à 11:01
0
Merci
Je n'ai pas devant moi les propriétés de l'openFileDialog, mais a la limite, passes par un FileInfo intermediaire



if (openFile.ShowDialog()==DialogResult.OK)

{

FileInfo fi = new FileInfo(openFile.FileName)

if( fi.Exists)


texte2Open.Text = fi.Name;



}


Mx
Commenter la réponse de MorpionMx
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 11 févr. 2005 à 11:05
0
Merci
Ou a la limite, tu cherche la derniere occurence du caractere '\' avec
LastIndexOf() dans ton chemin du fichier, et tu récupere les caracteres
qui le suivent avec un SubString(), ca marchera aussi.

Mx
Commenter la réponse de MorpionMx
amirirn1 45 Messages postés lundi 7 février 2005Date d'inscription 16 juin 2006 Dernière intervention - 11 févr. 2005 à 14:29
0
Merci
ça va j ai essayé ceci et ça a marché

textBox1.Text = System.IO.Path.GetFileName(fileName.ToUpper());

amir
Commenter la réponse de amirirn1
amirirn1 45 Messages postés lundi 7 février 2005Date d'inscription 16 juin 2006 Dernière intervention - 11 févr. 2005 à 14:31
0
Merci
pour transformer un string en int comment peut on faire , dans la class string il n y a aucun methode qui permet ça
j ai ;

string a =(
string)oDS.Tables[0].Rows[dataGrid1.CurrentRowIndex]["taille"];
et j aimerai que a devient un entier

amir
Commenter la réponse de amirirn1
amirirn1 45 Messages postés lundi 7 février 2005Date d'inscription 16 juin 2006 Dernière intervention - 11 févr. 2005 à 16:25
0
Merci
bonjour,
je veux entrer des donnée dans la base de donné
mais qd je fais l insertion
j ai l erreur ExecuteNonQuery:Connection property has not benn initialized
// Get Database Connection


_conn =
new SqlConnection(@"user id=ASPNET;initial catalog=APB;data source=BA_INFOSTAGE2;Integrated Security=SSPI");


SqlCommand addEmp =
new SqlCommand("INSERT INTO ATC ('"+aMettreEnBdd+"','"+aMettreEnBdd+"','"+aMettreEnBdd+"','"+aMettreEnBdd+"','"+aMettreEnBdd+"'");








_conn.Open();


addEmp.ExecuteNonQuery();


_conn.Close();
Commenter la réponse de amirirn1

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.