Transfere les donnés dune bases acces dans un fichier txt
kmbmaster
Messages postés2Date d'inscriptionjeudi 25 septembre 2003StatutMembreDernière intervention16 octobre 2003
-
8 oct. 2003 à 11:04
gg00xiv
Messages postés656Date d'inscriptionmercredi 22 août 2001StatutMembreDernière intervention11 mars 2005
-
9 oct. 2003 à 13:35
bonjour ,je suis debutant en c# jaimerais pouvoir transfere les donnés dune base (accesss) dans un fichier texte mais je n'y arrive pas ! est ce qun peut m'aider SVP:
voici un code qui transpose les donnés via de srequetes SQL dans uune Listbox ,je voudrais qu' en meme temps le programme créé un fichier txt et sauvegarde le contenu des donnés de la base .
quel code ajouter?
FORM.CS
ou le placer dans mon programme ??
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.OleDb;
using System.IO;
namespace WindowsApplication3
{
public class Form1 : System.Windows.Forms.Form
{
if (rows.Count > 0)
{
this.listBox1.Items.Clear();
this.listBox1.Items.Add("Projection de la colonne 'Contact' et 'Ville' de la table 'Fournisseurs'");
foreach (string val in rows)
{
this.listBox1.Items.Add(val);
}
}
// type record contenant le nom d'une colonne et sa valeur associée
public struct record
{
public record(string column_name, object content)
{
this.column_name = column_name;
this.content = content;
}
public string column_name;
public object content;
}
// constructeur nécessitant le path du fichier base de donnée Access
public BaseAccess(string filename)
{
this.filename = filename;
this.connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+filename;
}
// établie une connexion sur la base Access
public bool Open()
{
try
{
this.oConn = new OleDbConnection(this.connStr);
this.oConn.Open();
return true;
}
catch
{
return false;
}
}
// ferme la connexion à la base Access
public bool Close()
{
try
{
this.oConn.Close();
return true;
}
catch
{
return false;
}
}
// execute une requête SQL sur la base Access
public bool Execute(string ordre)
{
try
{
this.oCmd = new OleDbCommand(ordre,this.oConn);
this.rdr = this.oCmd.ExecuteReader();
return true;
}
catch
{
return false;
}
}
// renvoi une ArrayList contenant des enregistrements de type record
// contenant les différents champs de la ligne lue
public ArrayList Fetch()
{
ArrayList row = new ArrayList();
// renvoi une ArrayList contenant des string correspondantes aux valeurs
// dans la colonne spécifiée
public ArrayList ProjectionColumn(string column_name,string table_name)
{
ArrayList projection = new ArrayList();
if (this.Execute("SELECT "+column_name+" FROM "+table_name))
{
ArrayList row;
while ((row = this.Fetch()).Count > 0)
{
projection.Add(((record)row[0]).content);
}
}
return projection;
}
// renvoi une ArrayList contenant des string correspondantes aux différents noms
// de colonnes de la table passée en paramètre
public ArrayList GetColumnsNames(string table_name)
{
ArrayList columns = new ArrayList();
if (this.Execute("SELECT * FROM "+table_name))
{
for (int i=0;i<this.rdr.FieldCount;i++)
{
columns.Add(this.rdr.GetName(i));
}
}
return columns;
}
// renvoi une ArrayList contenant des ArrayList contenant chacune les différents
// champs des colonnes de la table spécidiée en paramètre
public ArrayList ProjectionTable(string table_name)
{
ArrayList rows = new ArrayList();
if (this.Execute("SELECT * FROM "+table_name))
{
ArrayList row;
while ((row = this.Fetch()).Count > 0)
{
rows.Add(row);
}
}
return rows;
}
// renvoi une ArrayList contenant des ArrayList contenant chacune les différents
// champs des colonnes passées en paramètre de la table spécidiée
public ArrayList ProjectionColumns(string[] columns_name,string table_name)
{
ArrayList rows = new ArrayList();
if (this.Execute("SELECT "+string.Join(",",columns_name)+" FROM "+table_name))
{
ArrayList row;
while ((row = this.Fetch()).Count > 0)
{
rows.Add(row);
}
}
return rows;
}
// renvoi les types des colonnes d'une table
public ArrayList GetColumnsTypes(string table_name)
{
ArrayList types = new ArrayList();
record rec;
if (this.Execute("SELECT * FROM "+table_name))
{
for (int i=0;i<this.rdr.FieldCount;i++)
{
rec.column_name = this.rdr.GetName(i);
rec.content = this.rdr.GetFieldType(i).ToString();
types.Add(rec);
}
}
return types;
}
// insert une line dans une table
public bool InsertRow(ArrayList columns, string table_name)
{
string order = "INSERT INTO "+table_name+"(";
ArrayList columns_values = new ArrayList();
foreach (record rec in columns)
{
// on rajoute les colonnes a remplir
order += rec.column_name + ",";
// on fait la liste des valeurs a ajouter
columns_values.Add(rec.content);
}
// on supprime le virgule a la fin
order = order.Substring(0,order.Length-1);
order += ") VALUES(";
foreach (object val in columns_values)
{
if (val is string || val is DateTime)
{
order += "'" + val + "',";
}
else
{
order += val + ",";
}
}
order = order.Substring(0,order.Length-1);
order += ")";
Console.Out.WriteLine("tentative de soumission : "+order);
return this.Execute(order);
}