begin process at 2010 02 10 13:11:07
  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

Probleme de connexion à un serveur SQL 2000 [ par Online ] Bonjour, voici mon probleme:Ma ligne de code: SqlCeConnection myconn = new SqlCeConnection("data enchainement de 2 forms [ par paloxicide ] Salut,J'ai 2 forms : connexion et menuConnexion s'afffiche et si les identifiants sont bons alors menu s'afficheVoici mon code:if (textBox1.Text == "a [c#] [1.1] WMI et processus [ par SupaLou ] Bonjour,je voudrais savoir comment faire pour lancer un processus sur une machine distante en passant par wmi le tout en csharp.Pour cela j'ai donc co Connexion a Sql Server 2000 sur XP a partir de Windows CE [ par cfoesser ] Bonjour,Je dois créer rapidement pour un client une application embarquée sous windows CE.Cette application doit se connecter une base de données Sql Connexion avec sql server 2005 [ par lebienestrare ] Bonjour, j'ai une application windows forms en c#, j'ai des comptes utilisateurs avec leur password au niveau de sql server,et j'ai un formulaire en c connexion à SQL Server [ par lamiruth ] Bonjour à tous,svp je suis bloquée depuis plusieur jours par un bug que j'ai du mal à resoudre.voici le message d'erreur: "Une erreur s'est produite Probleme de connexion SQL server2005 [ par drcmomo ] Bonjour a tous, J'utilise SQL server2005 et C#2005 j'ai crée une bases de données que j'appel TEST, j'essais de me connecter a cette derniére a p Client Xp(excel)/server 2003(SQL2005) [ par snif84 ] Bonjours a tous, je suis en bts ig et je passe très bientôt mes pti. Et j'ai un Pb sur le pti base de données. Je n'arrive pas a connecté mon client x Connexion à une bas de données sur SQL server [ par RockmanX ] Salut!Bon alors, mon problème est le suivant:J'ai créé une base sur le server à l'aide du SQL Server Management Studio Express.J'ai créé les tables et Connexion SQL Server via Pocket pc [ par joecoolups ] Bonjour a tous.Je suis a la recherche d'un composant SQLClient qui me permettrait de faire une connexion via un Pocket pc sur un serveur SQL. Cette co


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 0,811 sec (4)

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