bonjour à tous
Je cherche un exemple complet pour manipuler une base de données Access en utilisant OLEDB
(lecture, écriture, suppression, update)
merci d'avance
bonjour à tous
Je cherche un exemple complet pour manipuler une base de données Access en utilisant OLEDB
(lecture, écriture, suppression, update)
merci d'avance
Tu peux commencer par http://dotnet.developpez.com/articles/ado1/csharp/
C'est pour SQL Server, mais le principe est le même. Tout ce que tu as à changer, c'est :
- remplacer SqlConnection par OleDbConnection, SqlCommand par OleDbCommand, etc
- changer la chaine de connexion pour utiliser une base Access (cf. ce site)
merci
j'ai trouvé aussi ce lien http://csharp.net-informations.com/d...view-oledb.htm. Il est utile
bonjour à tous,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 string connetionString = null; OleDbConnection connection ; OleDbDataAdapter oledbAdapter = new OleDbDataAdapter(); string sql = null; connetionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Your mdb filename;"; connection = new OleDbConnection(connetionString); sql = "insert into user values('user1','password1')"; try { connection.Open(); oledbAdapter.InsertCommand = new OleDbCommand(sql, connection); oledbAdapter.InsertCommand.ExecuteNonQuery(); MessageBox.Show ("Row(s) Inserted !! "); }
j'utilise ce code mais l'insertion ne s'effectue pas!
merci d'avance
Si tu apprends tout juste à utiliser une base de données en C#, n'utilise pas les DataAdapter pour l'instant. Je vois tout le temps des débutants qui utilisent ça sans même comprendre ce qu'ils font, et là c'est visiblement ton cas.
Commence plutôt par le lien que je t'ai donné, il commence par la base, et aborde les datasets et DataAdapters dans l'article suivant.
Dans le code que tu as écrit, le DataAdapter ne sert strictement à rien. Fais plutôt quelque chose comme ça :
D'autre part, quand tu dis que ça ne marche pas, que se passe-t-il exactement ? Tu as une erreur ? Je suppose que ton fichier Access ne s'appelle pas "Your mdb filename", il faut modifier la chaine de connexion. Et la table user existe-t-elle ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 string connetionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Your mdb filename;"; OleDbConnection connection = new OleDbConnection(connetionString); string sql = "insert into user values('user1','password1')"; try { connection.Open(); OleDbCommand command = new OleDbCommand(sql, connection); command.ExecuteNonQuery(); MessageBox.Show ("Row(s) Inserted !! "); } catch(Exception ex) { MessageBox.Show(ex.ToString()); }
le code ne retourne pas une erreur mais l'insertion est temporaire il n’insère pas dans la base, comme si je tavail sur SQL et j'ai pas fait commit
même en rectifiant le code comme vous m'avez dit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public void write(string debut,string fin) { string connetionString = chaine; OleDbConnection connection = new OleDbConnection(connetionString); string sql = "insert into boites values(99,5,77)"; try { connection.Open(); OleDbCommand command = new OleDbCommand(sql, connection); command.ExecuteNonQuery(); MessageBox.Show("Row(s) Inserted !! "); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
Tu es sûr que tu regardes dans le bon fichier ? Si la base de donneés fait partie de ton projet, elle est copiée vers le répertoire de sortie lors de la compilation (dans bin\Debug). Sélectionne le fichier dans l'explorateur de solution et regarde ses propriétés. Pour la propriété "Copier vers le répertoire de sortie", vérifie que l'option sélectionnée est bien "Ne pas copier" ou "Copier si plus récent". Si l'option est "Toujours copier", la base de données dans le répertoire de travail est écrasée à chaque compilation, ce qui peut expliquer qu'elle ne semble pas avoir été modifiée...
merci vous avez raison c ca le probleme
mais je comprend pas pourquoi il ya 2 copie de la base l'une dans le projet et l'autre dans le repertoire de sortie debug?
et sur quelle copie je suis entrain de travailler exactemnt?
Le programme travaille sur la copie qui est dans le répertoire debug. Celle qui est à la racine du projet sert de "référence" pour pouvoir recréer la base de travail. Mais comme l'option par défaut est "toujours copier", ça écrase la base de travail à chaque fois, ce qui est un peu idiot...
j'essaie de faire un projet setup pour mon application
comment je fait pour que cette base soit installé chez l'utilisateur pendant le processus d'installation?
Salut,
Ca n'a pas de rapport avec la question d'origine, donc ouvre plutôt une nouvelle discussion, tu auras plus de réponses. Et commence par chercher sur le forum, je suis à peu près certain que la question a déjà été posée...
ok merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager