Accueil > Forum > > > > Créer et lancer une requête SQL en C#
Créer et lancer une requête SQL en C#
vendredi 4 janvier 2008 à 18:55:00 |
Créer et lancer une requête SQL en C#

CleemS
|
Salut à tous :) Alors voilà mon problème, je crois que j'ai à peu près réussi à lier ma BDD (SQL Server) à mon programme (Visual C# 2008 Express) avec ce code : IDbConnection dbconn = dbfactory.CreateConnection(); dbconn.Open(); IDbCommand dbcomm = dbconn.CreateCommand(); dbcomm.Connection = dbconn; Tout en mettant dans les usings : using System.Data.Common; using System.Configuration; Voilà, déjà manque-t'il quelque chose? Ensuite, j'ai réussi à enregistrer un nouveau film (vidéothèque :p) entré par l'utilisateur (Titre, durée, genre & avis) avec ce code : Film F1 = new Film(textBox1.Text, textBox2.Text, comboBox1.Text, comboBox2.Text); Mais maintenant voilà, j'aimerais enregistrer ce film F1 dans ma table 'Film' de ma BDD. Comment faire? Requête SQL? Le problème est que je ne sais pas comment et avec quoi créer et lancer ma requête. Merci d'avance, CleemS!
|
|
samedi 5 janvier 2008 à 13:34:39 |
Re : Créer et lancer une requête SQL en C#

Le grand Jisay
|
Salut,
Si je comprend bien film est le nom d'une classe que tu as créée. Ton constructeur doit être du style :
private string m_nom_film; private string m_genre_film; private string m_auteur_film;
public film(string nom_film, string genre_film, string auteur_film) { this.m_nom_film = nom_film; this.m_genre_film = genre_film; this.m_auteur_film = auteur_film; } // le faire 3 fois pour tous les membres privés => on aura nom, genre et auteur public string nom { Get{return this.m_nom_film;} }
Donc, si tu veux enregistrer ton film dans ta table, il te faudra faire une requête d'insertion. Ici je vais faire une requête INSERT dans un 'IDbCommand' avec ce que je pense être ton constructeur de ta classe film. Supposons aussi que les noms des colonnes de ta table 'Film' soient : nomdufilm, genredufilm et auteurdufilm, la requêtes sera du style :
IDbCommand command = new IDbCommand(); (je peux me tromper pour ca mais essaie) command.commandtext = "INSERT INTO Film(nomdufilm,genredufilm,auteurdufilm) VALUES('"+F1.nom+"','"+F1.genre+"','"F1.auteur')"; command = dbconn.CreateCommand(); command.ExecuteNonQuerry();
Et voila, je pense que c'est à ca que ca doit ressembler, regarde si ca va correctement, il y a peut-être quelques fautes car j'utilise une autre méthode un peu plus simple. Tu peux aussi utiliser des bloc Try Catch pour voir si il y a des erreurs et voir où sont les erreurs.
A+, bonne programmation,
Le Grand Jisay
|
|
samedi 5 janvier 2008 à 14:05:18 |
Re : Créer et lancer une requête SQL en C#

CleemS
|
Je te remercie beaucoup, sa me permet d'avancer ^^
Seulement voilà, mon programme n'apprécie pas trop certaines commandes apparemment, voici ton code que j'ai modifié :
IDbCommand command = new IDbCommand(); command.commandtext = "INSERT INTO Film(Titre, Duree, Genre, Avis, Affiche) VALUES('"+F1.GetTitre()+"','"+F1.GetDuree()+"','"+F1.GetGenre()+"','"+F1.GetAvis()+"','"+F1.GetAffiche()+"')"; command = dbconn.CreateCommand(); command.ExecuteNonQuerry();
Mais il y a des erreurs sur ce que j'ai souligné, pour la 1ère c'est : "Cannot create an instance of the abstract class or interface 'System.Data.IDbCommand'"...
Me manque des usings?
|
|
samedi 5 janvier 2008 à 17:06:21 |
Re : Créer et lancer une requête SQL en C#

Le grand Jisay
|
Re,
Je ne vois pas trop, tu pourrais me dire avec quelle type de base de données tu travailles ? ACCESS, SQL, ORACLE,... ? Et aussi avec quel logiciels tu programmes, Visual Studio je suppose, mais 2003 ou 2005 ?
Si tu travailles avec Visual Studio 2005, la manipulation de données est plus simple mais si tu es toujours en 2003, je t'expliquerai avec l'ancienne méthode...
A+,
Le Grand Jisay
|
|
samedi 5 janvier 2008 à 17:08:46 |
Re : Créer et lancer une requête SQL en C#

CleemS
|
J'utilise SQL Server pour ma BDD, mais j'utilise Visual C# 2008 Express (j'ai pris la 1ère version gratuite que j'ai trouvé ^^).
|
|
samedi 5 janvier 2008 à 17:28:50 |
Re : Créer et lancer une requête SQL en C#

Le grand Jisay
|
Ok ok je vois, j'avais oublié que cette version était sortie  Pour que ça soit plus simple, utilise l'espace de noms : System.Data.SqlClient Maintenant pour ta requête, je te donne la marche a suivre : - sur ta Form, tu ajoutes (à partir de la boite à outils) un objet de type SqlConnection (si c'est pas dans la boite à outils, tu ajoutes en cliquant droit dans la boite puis choisir les éléments). Tu modifies la propriété : 'ConnectionString' c'est-à-dire ta base de données Films. Ne change pas son nom, ça doit être SqlConnection1. - tu ajoute de la même façon un objet de type sqlcommand. Tu modifies la propriété : Connection tu mets SqlConnection1. Ne change pas son nom non plus. - Voila maintenant tu as créé tes objets pour pouvoir faire ta requête, maintenant dans ton code tu y places : try { this.sqlConnection1.Open(); this.sqlCommand1.CommandText = "INSERT INTO Film(Titre, Duree, Genre, Avis, Affiche) VALUES('" + F1.GetTitre() + "','" + F1.GetDuree() + "','" + F1.GetGenre() + "','" + F1.GetAvis() + "','" + F1.GetAffiche() + "')"; this.sqlCommand1.ExecuteNonQuery(); } catch(SqlException ex) { MessageBox.Show(ex.Message); } finally { this.sqlConnection1.Close(); } Voila, c'est la méthode qui nécessite le moins de ligne de code et je suppose qu'elle fonctionne aussi avec Visual Studio 2008. A+, Le Grand Jisay
|
|
dimanche 6 janvier 2008 à 03:44:02 |
Re : Créer et lancer une requête SQL en C#

CleemS
|
Re Jisay, merci beaucoup sa m'a bien fait avancer, mais sa me génère encore une petite erreur, sa doit venir de la propriété 'ConnectionString' de mon SqlConnection, je n'ai pas trop compris quoi mettre dans le champ, et quoique je mette il me dit :
"Format of the initialization string does not conform to specification starting at index 0."
Que faire?
|
|
dimanche 6 janvier 2008 à 10:59:48 |
Re : Créer et lancer une requête SQL en C#

Le grand Jisay
|
Oui, c'est un peu compliqué le format de ConnectionString.
Quand tu as ajouté ton SqlConnection à ta Form, dans la propriété ConnectionString, tu cliques bien sur la flèche tout à droite ? Là il faut choisir nouvelle connexion, puis parcourir et tu vas sur parcourir et tu vas chercher ta base de données SQL qui se trouve sur ton disque dur et normalement Visual Studio te génère tout seul comme un grand la ConnectionString.
Tu peux aussi ajouter ta base de données à ta solution. Je m'explique : dans ton explorateur de solution (sous Visual Studio) tu clique droit sur le nom de ton projet, ensuite Ajouter\Un élément existant et là tu vas chercher ta base de données SQL sur ton disque dur. Ensuite, si tu fais comme ca ou si c déjà comme ca que tu as procédé pour ta base de données, tu vas dans les propriétés de ta ConnectionString, clic sur la flèche à droite et au dessus de 'Nouvelle Connexion', tu choisis la base de données que tu as importée a ton projet.
Voila je pense avoir bien expliqué, je n'ai jamais eu cette erreur donc je ne sais pas trop si ca vient de la mais bon, ca c'est la bonne technique.
A+, Le Grand Jisay
|
|
dimanche 6 janvier 2008 à 15:35:21 |
Re : Créer et lancer une requête SQL en C#

CleemS
|
Je te remercie pour ces explications, mais je n'ai pas de petite flèche à droite de 'ConnectionString', j'ai bien ajouté ma BDD en cliquant droit sur mon projet > Add > Existing Item, je suis aller chercher ma BDD... Mais sa ne me fournit pas la ligne (ni la flèche pour chercher sa) a ma ConnectionString. Cependant, sur mon SqlConnection1, je suis aller voir dans Application Settings > Property Bindings (là y'a trois petits points du genre parcourir) > ConnectionString (la revoilà :p). Là j'ai bien une petite flèche, mais quand je choisi "DivX_DataConnectionString" (DivX étant le nom de ma BDD) il me génère une erreur : "Object of type 'Microsoft.VSDesigner.VSDesignerPackage.SerializableConnectionString' cannot be converted to type 'System.String'." Donc je vois pas, car même en allant chercher le DataSet qu'il me propose, il veut pas...     
|
|
dimanche 6 janvier 2008 à 15:57:48 |
Re : Créer et lancer une requête SQL en C#

CleemS
|
Je crois avoir résolu le problème, j'ai mis : "Data Source=C:\Program Files\Microsoft SQL Server\MSSQL\Data\DivX_Data.MDF" dans la ConnectionString, et il accepte ce type de ligne.
Malheureusement j'ai encore une erreur lors de l'ajout d'un Film : "There is a file sharing violation. A different process might be using
the file. [ C:\Program Files\Microsoft SQL
Server\MSSQL\Data\DivX_Data.MDF ]".
Etrange car à part SQL Server et mon programme, rien n'utilise ma BDD, et si je la désactive sa ne marche pas non plus... Etrange je ne comprends pas. =/
|
|
Cette discussion est classée dans : text, sql, requête, film, dbconn
Répondre à ce message
Sujets en rapport avec ce message
Problème lors de l'exécution d'une requête SQL [ par vonbier ]
Salut,je débute en C# et j'ai un problème lors de l'exécution d'une requête toute simple sur SQL Server 2000.Voici mon codestring conn = "server=HECTO
SQL ds mon code...pb de DataReader ??? [ par sphaxslayer ]
Salut tout l'monde, j'ai un ch'tiot souci avec du SQL dans mon code...voilà j'ai réussi à faire ma connexion Oracle (enfin! me diras-tu Jus lol merci
requête sql [ par kokoMelle ]
j'ai besoin de faire une fonction en c# qui permet de chercher à partir du nom ou une partie du nom d'une personne toutes les informations qui le conc
probs requête sql avec paramètres [ par patou1007 ]
bonjour,je suis vraiment frustré car je n'arrive pas à faire une requête sql avec paramètres :voiçi une partie de mon code: public <FONT color=#
modifier une requête d'un tableadapter par le code [ par beny1303 ]
Bonjour à tous,Je bosse sur un projet avec un dataset typé. Sur toutes les tables que j'utilise dans la base sql, il existe un préfixe sur le nom de l
[C#] [SQL] requête sur date [ par scoubidou944 ]
un p'tit sushi de syntaxe dans une requete SQL je cherche à récupérer les anniversaires à souhaiter pour la date courante. De plus si le resultat de
Récupération de SQL Nom champs [ par ahikaz ]
Salut,Est ce que c'est possible de récupérer par exemple de cette requête :SELECT nom AS Test FROM employe WHERE id=1;le libellé "Test" ? et cela aprè
requête update access en c# [ par dinosors_evolution ]
Je suis newbi en c#mon probléme est que lorsque je fait une requête update il me donne le message suivants:"Type de données incompatible dans l'expres
Problème, requête SQL compliquée [ par dread_loque ]
Bonjour tout le monde,Aujourd'hui un autre problème (non, je ne me suis pas fixé un objectif "un jour, un problème" mais bon...).Voilà, j'ai cette req
Comment vérifier un enregistrement sur BD avec C#.. [ par namous35 ]
Bonjour les amis,Voilà je suis un débutant en C# et je demande de l'aide concernant une vérification si un enregistrement existe sur une table SQL ou
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|