begin process at 2008 07 21 03:27:58
1 213 565 membres
33 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Base de données ACCESS clonage de table [ Archives / Base de données ] (Cameleon69)

Base de données ACCESS clonage de table le 21/01/2004 09:37:46

Cameleon69
Membre Club
Bonjour voici un extrait du code que j'utilise pour me connecter à ma base access puis essayer de faire un clonage d'une structure de table, sans succès ma table n'étant pas enregistrée dans mon fichier mdb:
//connexion
connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Mode=ReadWrite";
oConn = new OleDbConnection(this.connStr);
oConn.Open();
//test si table existe
DataTable dt;
string table = "2004";
dt = oConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,new Object[] {null,null,null,"TABLE"});
bool bTableExist = true;
foreach(DataRow row in dt.Rows)
{
if (row.ItemArray[2].ToString() != table)
{
bTableExist = false;
}
}
bool ToReturn = true;
if (!bTableExist)
{
try
{
DataTable Source = new DataTable("ref");
DataTable cloneTable = new DataTable(table);
cloneTable = Source.Clone();

}
catch
{
ToReturn = false;
}
}
return ToReturn;

Il n'y a aucune exception de retournée, la table existe bien mais quand je quitte celle-ci n'a pas été enregistrée dans mon fichier mdb, je cherche depuis hier mais je n'ai rien trouvé, une validation avant de quitter pour accepter les changements, rien, s'il vous plait aider moi ...

Re : Base de données ACCESS clonage de table le 21/01/2004 17:13:50

TheSaib
(Admin CS)
nulle part tu luis dis de copier la table dans la base.
POur copier une table de ta base dans ta base, il faut le faire avec des requetes SQL je pense.

::|The S@ib|::
MVP C#.NET

Re : Base de données ACCESS clonage de table le 25/01/2004 21:47:51

vieuxLion
bonjour,

je crois avoir déja répondu à cette même question très récemment. Voici une solution:
Il s'agit de remplir un Dataset à partir d'un DataAdapteur pointant sur la table source et d'utiliser un autre DataAdapteur pointant sur la table cible pour faire l'update
L'idée est de profiter du Dataset pour manipuler les enregistrements avant copie.

void CopieTable()
{
OleDbConnection cnx =null;
try
{
cnx = new OleDbConnection(@"Data Source=""D:\copieTable\test.mdb""; Provider=""Microsoft.Jet.OLEDB.4.0""");
OleDbDataAdapter daSource = new OleDbDataAdapter ("Select * from Test", cnx);
daSource.AcceptChangesDuringFill = false;//important
DataSet ds = new DataSet();
daSource.Fill(ds, "Test");
if (ds.Tables["Test"].Rows.Count==0)
{ MessageBox.Show("Dataset Vide"); return ; }
OleDbDataAdapter daCible = new OleDbDataAdapter ("Select * from Test2", cnx);
OleDbCommandBuilder cb = new OleDbCommandBuilder (daCible);
daCible.InsertCommand = cb.GetInsertCommand();
//daCible.UpdateCommand = cb.GetUpdateCommand();
//daCible.DeleteCommand = cb.GetDeleteCommand();
cnx.Open();
daCible.Update(ds, "Test");
}
finally { cnx.Close(); }
}


Re : Base de données ACCESS clonage de table le 11/07/2008 13:09:07

xxslayerxx
tré bien 9.5/10
ca marche bien

Re : Base de données ACCESS clonage de table le 12/07/2008 02:52:07

xxslayerxx
Dynamic SQL generation is not supported against a SelectCommand that does not return any base table information.
voila ce ke génére le code


Classé sous : access, base, table, datatable, clonage

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS