bon attends je t'envoie le code car je crois que y a des incompréhension
c mon premier prog en c# , j'ai quelque mois de prog dans les dents donc g encore tout a apprendre c pour ca que j'explique assez mal ce que je veux faire...
J'ai un fichier Excel que je veux importer dans une base Access : Au début j'ai voulu attaquer par OleDb mon fichier Excel masi comme j'attaque ma base de donnée acces en meme temps en OleDb je me suis dit que je pouvais peut etre pas le faire (pas test) donc g pris les truc msdn pour "piloter" excel je suis partie dasn cette direction et ca a donnée ca :
using System;
using System.Data;
using System.Data.OleDb;
using System.Collections;
using System.Reflection;
using System.Messaging;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.ComponentModel;
public class Base_classe
{
private string name = null; //Nom de la base (fichier)
private string path = null; //Path du fichier
private string Err = null; //Permet de gérer les erreurs
private OleDbConnection objConnex; //permet de se connecter à la base
private OleDbDataAdapter objReq;
private OleDbDataReader objLire;//permet de lire la base de donnée
private OleDbCommand objCmd;
// constructeur nécessitant le path du fichier base de donnée Access
public Base_classe(string name)
{
this.name = name;
this.path = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+name;
}
// établie une connexion sur la base Access
public bool Open()
{
try
{
this.objConnex = new OleDbConnection(this.path);
this.objConnex.Open();
}
catch
{
this.objConnex = null;
MessageBox.Show("Erreur de connexion à la base de donnée" );
MessageBox.Show("Fermeture du programme" );
Environment.Exit(0);
return false;
}
return true;
}
// ferme la connexion à la base Access
public bool Close()
{
try
{
this.objConnex.Close();
return true;
}
catch
{
return false;
}
}
//le main
static void Main ()
{
//Déclaration de l'objet Missing ( appli ne suportant pas les valeurs null )
object Missing = System.Reflection.Missing.Value;
//-- inclure une demande du nom de fichier --
string fileName = "C
test.xls";
/***-- Deb EXCEL --***/
//--Principe-- : On sauvegarde le tableau Excel dans un tableau double dimension
Excel._Application xlApp;
Excel._Workbook xlClasseur;
Excel._Worksheet xlFeuill1;
//Acces à l'application
xlApp = new Excel.Application();
xlApp.Visible = false; //soit disant ne pas faire apparaitre la feuille
//Acces au classeur
xlClasseur = xlApp.Workbooks.Open(fileName,
Missing,Missing,Missing, Missing, Missing, Missing, Missing,Missing,
Missing, Missing,Missing,Missing,Missing,Missing);
//Acces à la feuille
Excel.Sheets xlFeuilles = xlClasseur.Sheets;
xlFeuill1 = (Excel._Worksheet)xlFeuilles["?blabla?"]; //changer blabla par le nom de ta feuille
//On lit la feuille Excel une premiere fois pour connaitre la taille du tableau
int nb_col=1;
int nb_lign=1;
int a=1;
//On récupère le nombre de ligne
Excel.Range r = xlFeuill1.get_Range("A"+(a).ToString(),Missing);
while(r.Value2!=null)
{
nb_lign++;a++;
r = xlFeuill1.get_Range("A"+(a).ToString(),Missing);
}
a=1;
//On récupère le nombre de colonne
r = xlFeuill1.get_Range("A"+(a).ToString(),Missing);
while(r.Value2!=null)
{
nb_col++;
r = (Excel.Range)xlFeuill1.Cells[1,nb_col];
}
System.Console.WriteLine("testfini10, nb_ligne="+nb_lign +", nb_col"+nb_col );
System.Console.ReadLine();
//On créer le tableau qui contient la feuille Excel
object[,] info = new object[nb_lign,nb_col];
//r = xlFeuill1.get_Range("A"+(a).ToString(),Missing);
for (int i=1; i < nb_lign ; i++)
{ //ligne , colonne
for (int j=1; j < nb_col; j++)
{
r = (Excel.Range)xlFeuill1.Cells[i,j];
info[i,j] = r.Value2;
}
}
System.Console.WriteLine("testfini11" );
System.Console.ReadLine();
// Enregistre les modifs des cellules
xlClasseur.SaveAs("c:\\MyWorkbook.csv",
Excel.XlFileFormat.xlCSVWindows, Type.Missing, Type.Missing,Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange,Type.Missing, Type.Missing, Type.Missing, Type.Missing,Type.Missing);
// ferme le XLS
xlClasseur.Close(false, Missing, Missing) ;
// On met fin au pilotage
xlApp.Quit() ;
/***-- Fin EXCEL --***/
//Appel de la fonction Open()
Base_classe bas = new Base_classe("BaseBdm.mdb" );
bas.Open();
// Crée une instance dobjet DataAdapter.
OleDbDataAdapter objAdapt;
objAdapt = new OleDbDataAdapter("Select * From tDEf_Theme", bas.objConnex);
// Crée une instance dobjet DataSet et extrait
// les données à partir de la table voulu (ici tDEF_Theme).
DataSet DATA = new DataSet();
objAdapt.FillSchema(DATA, SchemaType.Source, "tDef_Theme" );
objAdapt.Fill(DATA,"tDef_Theme" );
// Crée une nouvelle instance dobjet DataTable.
DataTable tbl;
tbl = DATA.Tables["tDef_Theme"];
//Créer une instance d'objet DataRow
DataRow lign;
// Obtient un nouvel objet DataRow à partir de lobjet DataTable.
lign = tbl.NewRow();
// Définit les valeurs des champs de la ligne
lign["IDT_ThemeL1"] = "George";
lign["IDT_ThemeL2"] = "Johnson";
lign["IDT_ThemeL3"] = "Julie";
lign["IDT_ThemeL4"] = "Julie";
lign["boTheme1"] = 0;
// Place ce nouvel objet dans la méthode Add de l'objet DataTable.
tbl.Rows.Add(lign);
Console.WriteLine("Ajout terminé...\nAppuyez sur n'importe quelle touche pour continuer !\n" );
Console.ReadLine();
//Envoie des modification du DataSet
OleDbCommandBuilder objCommandBuilder = new OleDbCommandBuilder(objAdapt);
objAdapt.Update(DATA, "tDef_Theme" );
Console.WriteLine("Mise à jour de la base terminée...\nUtilisez l'explorateur pour voir les modifications" );
Console.ReadLine();
//Appel de la fonction Close()
bas.Close();
}
}
---------------
Hihi j'suis là ou pas?