begin process at 2012 02 09 18:30:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Base de données

 > 

ADO.NET

 > 

Comment vérifier un enregistrement sur BD avec C#..


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment vérifier un enregistrement sur BD avec C#..

dimanche 30 septembre 2007 à 02:14:25 | Comment vérifier un enregistrement sur BD avec C#..

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 pas et tout ça evec C#.
 
donc j'ai une table SQL, une interface web evec deux textboxs qui pointent sur ma table et biensûr un bouton pour valider la saisie.

ce que je veux faire c'est éviter d'avoir des doublons sur ma Table SQL et ce en instorant une méthode pour tester si les données saisies existent déjà sur ma BD ou pas.

j'ai pu mettre mon bloc d'instructions pour la saisie ds donnée comme suit :

<--------------------------------------------------------------->

void BT_Send_Click(object sender, EventArgs e)
{

    // Déclaration de l'objet de connexion
    System.Data.SqlClient.SqlConnection oConnection;

    // Création de l'objet de connexion
    oConnection = new System.Data.SqlClient.SqlConnection();

    // Paramétrage de la chaîne de connexion
    string sConnectionString;
    sConnectionString = " Server = <Server>; Initial Catalog = <Base_de_Données>; uid = <Login>; password = <Password>";
    oConnection.ConnectionString = sConnectionString;

    // Connexion à la base de données
    oConnection.Open();

    // Déclaration de l'objet SqlCommand et de la requête SQL
    System.Data.SqlClient.SqlCommand oCommand;
    string sSQL;

    // Ecriture de la requête SQL
    sSQL = "INSERT INTO [Liste](Nom,Prenom)";
    sSQL = sSQL + " VALUES('" + TBox_Nom.Text + "','" + TBox_Prenom.Text + "')";

    // Création de l'objet SqlCommand
    oCommand = new System.Data.SqlClient.SqlCommand(sSQL,oConnection);

    // On appelle la méthode ExecuteNonQuery pour éxécuter notre commande
    oCommand.ExecuteNonQuery();

    // On écrit notre message de confirmation
    LB_Message.Text = "Les données suivantes " + TBox_Nom.Text + TBox_Prenom.Text + " ont correctement été créées !";

    // On rend le message visible
    LB_Message.Visible = true;

    // Fermeture de la connexion
    oConnection.Close();

}
<--------------------------------------------------------->
voilà j'ai testé ce code et ça marche pour la saisie, ce que je voudrait rajouter c'est la partie vérification, comment est-ce que ça se presente et où dois je la mettre ??

un bout de code avec explication m'aiderai bcp.

merci les amis


____________
 C-Shark

dimanche 30 septembre 2007 à 10:26:36 | Re : Comment vérifier un enregistrement sur BD avec C#..

coq

Administrateur CodeS-SourceS
Réponse acceptée !
Salut,

Tu ne devrais pas mettre ta chaine de connexion dans le code mais dans le fichier de configuration de l'application.

Pas de concatnéation de chaine de caractères pour les valeur, surtout comme ça sans aucun contrôle de la saisie utilisateur !
=> http://www.csharpfr.com/tutoriaux/UTILISATION-REQUETES-PARAMETREES-AVEC-ADO-NET_709.aspx
=> http://www.csharpfr.com/tutoriaux/COMMENT-FAIRE-REQUETE-PARAMETREE-DANS-BASE-DONNEE_710.aspx

Pour la vérification, une requête SELECT avec filtrage sur le nom et le prénom devrait suffire.
En oubliant pas les contraintes qui vont bien sur la base pour s'assurer quand même que les données ne soient pas incohérentes, je pense notamment à une insertion par un autre utilisateur de l'application entre la vérification et l'insertion.
Par contre n'oublie pas que les couples nom/prénom ne sont pas forcément uniques : tu peux très bien te retrouver avec 2 personnes distinctes portant les mêmes noms et prénoms.

Et ajoute aussi les structures de gestion d'erreur (try/catch/finally) pour t'assurer de tout faire pour que la connexion soit fermée quoi qu'il arrive.


/*
coq
MVP Visual C#
CoqBlog
*/
dimanche 30 septembre 2007 à 11:23:28 | Re : Comment vérifier un enregistrement sur BD avec C#..

namous35

Bonjour Mon ami,

je ne vais pas prendre en consideration si les données "Nom et Prenom" peuvent être rentrée plusieurs fois ou pas, je vais prendre l'hypothèse que ça soit une et seule fois sur la BD.

normalement je dois déclaré une classe Bool comme c'est illustré là-dessous (c'est un bout de code que j'ai trouvé sur le net mais pas bien clair pour moi (je suis débutant comme vous le savez )).

est-il possible de me donner un petit éclairecissement par rapport à tout celà et comment dois je engagé l'insertion juste après vérification au cas où la donnée n'existe pas sur ma BD

merci encore

<----------------------------------------------------------------------->
protectedbool CheckBase(Nom,Prenom)
{
//Nbre de lignes affectées
bool bValid = true
// Déclaration de l'objet de connexion
System.Data.SqlClient.SqlConnection oConnection;
// Création de l'objet de connexion
oConnection = new System.Data.SqlClient.SqlConnection();
// Paramétrage de la chaîne de connexion
string sConnectionString;
sConnectionString = Server = <Server>; Initial Catalog = <Base_de_Données>; uid = <Login>; password = <Password>";
oConnection.ConnectionString = sConnectionString;
// Connexion à la base de données
oConnection.Open();
// Déclaration de l'objet SqlCommand et de la requête SQL
System.Data.SqlClient.SqlCommand oCommand;
string sSQL;
sSQL = "SELECT Nom,Prenom from  [Liste] where Nom = "+TBox_Nom.Text +" and Prenom = " +TBox_Prenom.Text ;
 
// Création de l'objet SqlCommand
oCommand = new System.Data.SqlClient.SqlCommand(sSQL, oConnection);
// On appelle la méthode ExecuteNonQuery pour éxécuter notre commande
if(oCommand.ExecuteNonQuery() > 0)
bValid = false;
 
return bValid
}

if(CheckBase(TBox_Nom.Text , TBox_Prenom.Text ))
...............






<----------------------------------------------------------------------->
____________
 C-Shark
lundi 1 octobre 2007 à 11:27:41 | Re : Comment vérifier un enregistrement sur BD avec C#..

namous35

Salut les amis,

est-ce que vous pouvez m'aider sur ce sujet là ou bien m'indiquer une autre méthode plus simple pour faire le test que je veux faire ??

merci les gars.

____________
 C-Shark
dimanche 14 octobre 2007 à 14:11:55 | Re : Comment vérifier un enregistrement sur BD avec C#..

bidou_01

Bonjour,

Le plus simple que tu puisses faire c'est de créer un Index SQL Server au niveau de ta base de données, basé sur la clé primaire, le nom et le prénom. Ainsi tu ne pourra pas avoir 2 lignes ayant même PK, nom et prénom. Comme la dit coq, tu ne peux pas te baser sur un test nom+prenom, car plusieurs personnes peuvent avoir les mêmes nom et prénom.

L'index permettra de renvoyer une erreur en cas de doublons, que tu peux attraper dans le code à l'aide d'un bloc try/catch.

En plus un index favorise la recherche des données dans la bases, quand le nombre d'entrées commence à être très élevé.

Tu trouvera plus d'explications ici

Cordialement,

Bidou_01



Cette discussion est classée dans : text, sql, connexion, ssql, oconnection


Répondre à ce message

Sujets en rapport avec ce message

Problème de connexion avec une BDD SQL Server [ par filiplarlibe ] Bonjour à tous, Je viens tout juste de débuter en C# (moins d'une journée). J'ai suivi des tuto mais je rencontre un problème et je ne sais pas pour erreur de connexion sql server [ par poomen ] je veux que mon application .exe marche dans un autre pc , qui a ni sql , ni visuel studio , j'ai attacher ma base de donnée dans l'application , et p probleme de connexion a une base sql expres par reseau [ par cudenetf ] Bonjour , je fais une appllication ou ya des datasets ,etc... et les chaines de connexions sont créées par visuale studio ds settings. En local ca mar Sql et c# [ par poorsi21 ] bonjour Je veux Accéder a une base de donnée donner dans un textbox mais un erreur ce produit a l'ouverture de base " myConnection.Open();" errue==> [ modifier un type de données dans une table existante [ par volcelest ] Bonjour, J'essaie de modifier un type de données dans une table existante de ma BDD. À l'origine le type de données est varchar(255) et je veux le tr Probleme dans une classe de connexion SQL [ par online972 ] Bonjour, Je me retrouve avec un problème un peu insolite que je ne comprends pas trop... J'ai dans mon projet une classe qui me sert en théorie à la Portée d'une connexion SQL? [ par nabilG ] Bonjour,Je suis nouveau dans C#.Je voudrais migrer d'une application VB.net qui contient une chaine de connexion SQL:conn.ConnectionString = "Data Sou insertion [ par medinfo87 ] salut tt le monde,bon j'ai un problème pour cette insertion,je me demande si qq'un peut m'aider :else                                    {             connexion à la base des données sql server en c# [ par baby85 ] bonjour,je suis débutante en c# et je veux savoir comment je peux se connecter à sql server en c#.merci pour votre réponse probleme en connexion à la base de données sql [ par conpf ] bonsoir,je veux faire une connexion à la base des données sql mais j ai une une probleme de connexion je sais pas pourquoivoila le code :string<font s


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,838 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales