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 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|