ADO.NET création d'une table par le code

borgeomi Messages postés 77 Date d'inscription mercredi 20 juin 2001 Statut Membre Dernière intervention 23 juin 2011 - 17 janv. 2008 à 10:09
Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010 - 17 janv. 2008 à 11:38
Bonjour


 


Je n'arrive pas à crée une table MS ACCESS directement par le code en C#

la table semble bien crée dans le DATASET mais pas dans la base source



Module appelant







// ouverture de la base de donnée

oleDbConnectionTurf.Open();







// définition d'une requête SQL






// string qui contient la requête SQL






string
strSql;strSql =


"SELECT cheval FROM test"
;


OleDbDataAdapter
adaptateur_table_test =

new



OleDbDataAdapter
(strSql, oleDbConnectionTurf);


DataSet
MonDataset_test =

new



DataSet
(

"DataTest"
);

adaptateur_table_test.Fill(MonDataset_test,


"test"
); 

 



using



System.Drawing;


using



System.Windows.Forms;


namespace



WindowsApplication1 {


class



TraitementLectureCheval

{







public
TraitementLectureCheval(

DataSet
monDataset_test,

OleDbDataAdapter
adaptateur_table_test,

ListBox
listBox2){


foreach
(

DataRow
rangée

in
monDataset_test.Tables[

"test"
].Rows){


string
tmp =

""
;


for
(

int
i = 0; i < rangée.ItemArray.Length; i++){

tmp += rangée[i];


// +" , ";//+ToString() + " , ";






TraitementCourseParCheval
traitementCourseManuel =

new



TraitementCourseParCheval
(tmp, monDataset_test,adaptateur_table_test);

}

listBox2.Items.Add(tmp);

}

}

}

}



 




namespace



WindowsApplication1{


class



TraitementCourseParCheval

{







public
TraitementCourseParCheval(

string
nomDuCheval,

DataSet
monDataset,

OleDbDataAdapter
adaptateur_table_test ){


//






// Si la DataTable de ce type de course ( numéro , distance , prix )n'existe pas






// I






// I Création de la DataTable






// I






// Fin si






// Traitement course pour ce cheval









// défintion de la table nomDuCheval






DataTable
tabCheval =

new



DataTable
(

"nomDuCheval"
);adaptateur_table_test.Fill


// création de la colonne nom du cheval ==> nomDuCheval

DataColumn colNomDuCheval =




new



DataColumn
(

"nomDuCheval"
,

typeof
(

string
));


// ajout de la colonne nom du cheval ==> nomDuCheval à la table tabCheval

tabCheval.Columns.Add(




"colNomDuCheval"
);tabCheval.AcceptChanges();

tabCheval.Rows.Add(


"nomDuCheval"
);


// ajout de la table au dataset

tabCheval.AcceptChanges();


monDataset.Tables.Add(tabCheval);







// validation des modifications apportées

monDataset.AcceptChanges();







//monDataset.GetChanges();






foreach
(

DataTable
table

in
monDataset.Tables){


if
(table.HasErrors){


// traiter l'erreur

}


}


 


 








adaptateur_table_test.Update(monDataset,




"nomDuCheval"
);}

}

}








 


borgeomibonjouuuuuuur !!!!!

1 réponse

Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010
17 janv. 2008 à 11:38
si tu veux creer ta table dans ta base de donne tu dois utiliserune requete de type CREATE TABLE que tu lancera avec la methode executeNonQuery d'un objet Command (oleDbCommand ici je pense...).

le Dataset et ta base de données sont deux entités DISTINCTES, toute modification de l'une de ces entités n'entraine PAS de modification de l'autre,
c'est a toi de coder ces interactions (meme si les wizards aident beaucoup pour l'update des tables, ils ne font pas la creation de table a ma connaissance)

Nul ne devient grand par la guerre...
0
Rejoignez-nous