Pb CREATE TABLE [Résolu]

Signaler
Messages postés
379
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 octobre 2008
-
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
-
Bonjour,
   j'essaie de faire un script pour créer une new table dans une base de donnée access et j'ai l'erreur suivante :

   L'erreur suivante a été rencontrée : Erreur de syntaxe dans la définition de champ.

voici le code :
try




{





string strConnexion = @"Provider=Microsoft.Jet.OLEDB.4.0; User ID=Admin;Data Source=C:\\Mon\\URL\\ODBC.mdb";







string strRequete = "CREATE TABLE my_odbc_net(name varchar(20), author varchar(20))";







OleDbConnection oConnection = newOleDbConnection(strConnexion);







OleDbCommand oCommand = newOleDbCommand(strRequete, oConnection);





oConnection.Open();



oCommand.ExecuteNonQuery();



oConnection.Close();



oCommand.Dispose();



oConnection.Dispose();



}





catch (OleDbException ex)





{





MessageBox.Show("L'erreur suivante a été rencontrée : " + ex.Message);





}

1 réponse

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Salut,

Je pense que ton erreur est due au fait que "name" est un mot reservé. Essaie avec le bout de code qui suit. (mais ton code fonctionne quand meme chez moi, sans exception)
Un autre probleme dans ton cas, quand une exception est levée, le Dispose de ta connexion n'est pas appelé (donc ta connexion reste ouverte).
J'ai juste utilisé un bloc using pour fermer la connexion même si une exception survient (qui reviendrait au meme que de faire un Dispose de ta connexion dans un finally)

<hr />try
{

   string strConnexion =
@"Provider=Microsoft.Jet.OLEDB.4.0; User ID=Admin;Data Source=G:\\Mes documents\\bd1.mdb";

   string strRequete =
"CREATE TABLE my_odbc_net([name] varchar(20), author varchar(20))";

   using (
OleDbConnection oConnection =
new
OleDbConnection(strConnexion))
   {

      OleDbCommand oCommand =
new
OleDbCommand(strRequete, oConnection);
      oConnection.Open();
      oCommand.ExecuteNonQuery();
   }
}

catch (
OleDbException ex)
{
   MessageBox.Show(
"L'erreur suivante a ‚t‚ rencontr‚e : " + ex.Message);
}

<hr />

Mx
MVP C#