Pb CREATE TABLE

Résolu
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008 - 13 janv. 2008 à 10:01
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 - 13 janv. 2008 à 11:03
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

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
13 janv. 2008 à 11:03
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# 
3
Rejoignez-nous