Controle d acces

bm1982 Messages postés 58 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 10 juin 2012 - 19 nov. 2009 à 13:53
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 - 23 nov. 2009 à 11:09
salut a tous .
j'ai une base de donnée MYSQL
ET un formulaire form1 en vb.net[list]
form1 a 2 textbox
textbox 1 pour sair le nom utilisateur
et texbox 2 le mot de passe
et un bouton(bt10) pour lancer 2 autres form :form2 et form3.
ma base de données ayant ''groupe'' comme nom.
et une table COMPTE avec les champ
"user" nom utilisateur
"niveau " niveau d accès" 2 Niveau bas et haut
"password" mot de passe.
je veux qu'en fonction du user et du mot de passe,on recupere le niveau et que l'user soit dirigé sur le form 2 pour niveau bas et form3 pour haut.

Voici ce que j ai fai.
---DANS GÉNÉRAL JE TAPE CECI
Imports MySql.Data.MySqlClient
Dim Conn As MySqlConnection
Conn = New MySqlConnection()
Conn.ConnectionString = "server=13.10.11.12;user id=root;password=0000;database=groupe"
---Au click sur btn10
private sub btn10_click()
---?comment faire le code pour faire
--- le controle
end sub

27 réponses

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
22 nov. 2009 à 14:21
Sache que j'apprécie clairement ton dernier post, car pour reprendre ce qui se passe en ce moment, nous dialogons souvent avec des membres qui pensent que nous ne sommes pas des hetres humain, mais des sortes de machines à coder et qui donc, se permettre de poster sans même dire bonjour, ni merci ou simplement se présenter comme tu l'as fait. Ce qui ne nous donne pas franchement envie de répondre, si ce n'est pour les rediriger vers un lien Google.

Au moins la, je sais à qui j'ai affaire, et pourquoi tu désire créer ce programme.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
22 nov. 2009 à 14:49
En ce qui concerne ton code, tu fais beaucoup d'erreur de syntaxe :

Imports MySql.Data.MySqlClient 

Dim Conn As MySqlConnection 'Ca OK
Conn = New MySqlConnection()' OK aussi mais peut se faire en une ligne

Dim Conn As New MySqlConnection 

'connection a la base au chargement de la feuille 

Private sub frmcde_load() 
'Ici, tu donne une chaîne de connexion à oConn qui n'est pas déclaré
oConn.ConnectionString = "server=1.2.3.4;user id=root;password=0000;database=PDC" 
END SUB 

'ajout d une commade avec le bouton enreg 
private sub btn-enreg_click () 
'La tu redéclare Conn qui est déja déclaré plus haut
Dim Conn As MySqlConnection 
Conn = New MySqlConnection() 

Conn.ConnectionString = "server=1.2.3.4;user id=root;password=0000;database=PDC" 

'Ici tu ouvre oConn, or il ne te sers pas plus bas dans le code ???
oConn.Open() 

Dim myCommand As New MySqlCommand 
Dim MyAdapt As New MySqlDataAdapter 
Dim myDataTable As New DataTable 
Dim strQuery As String 

'Ici tu donne à ta commande, Conn or, celle-ci n'est pas ouverte
myCommand.Connection = Conn 

'La, ta syntaxe pour la commande n'est pas bonne;
myCommand.CommandText =("insert client values"(Me.txtcode.text& ", " & me.txtref.text& ", " & me.txtqte.text& ", " & me.txtmontant.text) 

'Ta commande est une commande INSERT (faite pour insérer des données dans la base) et toi tu la passe en Commande SELECT (faite pour lire les données de la base).
MyAdapt.SelectCommand = myCommand 
MyAdapt.Fill(myDataTable) 

'Tu utilise une boucle For/Next, le mieu c'est For/Each, mais For/Next fonctionne quand même
For i As Integer = 0 To myDataTable.Rows.Count - 1 
MsgBox(myDataTable.Rows(i)("monChamp").ToString) 
Next 
endsub 


Tu fais énormément de fautes, je veux bien t'aider et te corriger, mais le problème c'est qu'il va faloir que tu te mette serieusement sur un tuto dont je te donne le lien ici. Je suis franchement désolé, mais il n'y a pas de mystères, pour apprendre, il faut se documenter, le lien précédent est très bien expliqué.

Que voulais-tu faire exactement ? Le but de ton code c'était quoi ? Ajouter une ligne dans une table de ta base ou alors lire les lignes contenues dans cette table ??? Car je peux corriger ton code, mais du coup je ne sais pas à quoi il sert à la base...

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
bm1982 Messages postés 58 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 10 juin 2012
22 nov. 2009 à 16:34
ok message rcu 5 / 5
je m efforcerai a le faire .
je suis en face d'apprentissage de vb.
tu sais chez nous en afrique l 'informatique les gens y a pa bocou de gens qui s y interressent.
Moi quand j etai en premiere année medecine ce la que j ai commencé a faire de l'informatique (2002).et on m a dit qu'il y avait un domaine " la prrogrammation " qui etait bien .
j ai cherché des cours sur le net et seul j ai commencé l algorithmique ...et le PASCAL..
tout seul je faisai des truc pas mal en pascal .je dis meme aujourd ui je programme tres bien pascal.et les Bases de données mysql access et meme le hTML.

Pourkoi je veux faire du VB...
Une fois je suivais une émission télé sur les langages de 4 eme générations et ce la que j ai appris que word excel pwpt ont été fai en grde partie avec vb.donc moi sa ma plu.
c est ainsi que je me su orienté vb ....
0
bm1982 Messages postés 58 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 10 juin 2012
22 nov. 2009 à 16:48
Au fait je veux me connecter à ma base et
enregistrer des infos , les rechercher , et les mettre a jour
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bm1982 Messages postés 58 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 10 juin 2012
22 nov. 2009 à 17:59
J ai une table
Produit (code,designation,prixunit)
code : entier
designation : varchar
prix unit : varchar

Cette table est sur la base Bprod sur le serveur :1.2.3.4

Jai un formulaire en vb.net nommé form1.
---------STRUCTURE DE FORM 1---------------
j ai 3 textbox t1;t2;t3 ou je saisi respectivement le code la désignation et le prix unitaire d'un produit..

Je veux soit enregistrer un produit
mettre a jour un produit et ensuite supprimer un produit
................Merci d'avance de ton aide ...
NB : le lien ne me dirige pas sur une page ...tu peux m'envoyer le fichier ou le nom du doc à d_durant@live.fr

MERCI
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
23 nov. 2009 à 09:11
Bonjour,

Bm1982, si ton problème d'origine est résolu, à savoir connexion à la base de données et renvoi vers tel form en fonction des droits de l'utilisateur, penses à valider le post.
L'ajout ou la modification dans cette base est un tout autre sujet.
On veut bien t'aider, mais :"Je veux soit enregistrer un produit
mettre a jour un produit et ensuite supprimer un produit ".

Ok, mais qu'as tu déjà testé?As-tu effectué une recherche sur le site, qui regorge d'exemples sur les bases de données?

Autre chose, évite de donner ton adresse comme ça pour éviter les spams :)


L'expérience, c'est une connerie par jour, mais jamais la même..
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
23 nov. 2009 à 11:09
Salut lolokun,

Reposter ne servirait qu'a poluer le forum, il y a déja pas mal de topic ouverts à ce sujet, et puis je trouve notre ami bm1982 fort sympatique, ce pendant tu as raison pour la résolution du problème.

Allé pour une fois et sâche, bm, que ce n'est pas dans nos habitudes de donner des codes tout prêt à l'emploi, mais je vais faire un geste, tu n'auras plus qu'a adapter le code suivant pour ton programme, celui-ci te montrera les bases :

 'Ici on déclare, instancie et spécifie la chaine de connexion en même temps (une seule ligne)
    Private Connex As New MySqlConnection("server=1.2.3.4;user id=root;password=0000;database=PDC")

    'Cette procédure servira à ouvrir la connexion
    Private Sub Connect()
        '
        'tente d'ouvrir la connexion et affiche un message d'erreur en cas d'echec
        Try
            If Connex.State <> ConnectionState.Open Then
                Connex.Open()
            End If
        Catch ex As Exception
            MessageBox.Show("Echec de connexion au serveur de données." & Environment.NewLine & _
                            "Détails de l'erreur : " & ex.Message, _
                            "Echec de connexion", _
                            MessageBoxButtons.OK, _
                            MessageBoxIcon.Exclamation)
        End Try
        '
    End Sub

    Private Sub ExecCommand(ByVal query As String)
        '
        Try
            '
            'On instancie la commande, en lui passant en paramètre la connexion et la requete SQL
            Dim cmd As New MySqlCommand(query, Connex)
            '
            'On exécute cette commande et celle-ci retourne le nombre de lignes affectés
            If cmd.ExecuteNonQuery = 0 Then
                '
                MessageBox.Show("Opération impossible", _
                                "Erreur", _
                                MessageBoxButtons.OK, _
                                MessageBoxIcon.Exclamation)
                ' 
            End If
            '
        Catch ex As Exception
            '
            MessageBox.Show("Erreur d'accès aux données." & Environment.NewLine & _
                            "Détails de l'erreur : " & ex.Message, _
                            "Erreur", _
                            MessageBoxButtons.OK, _
                            MessageBoxIcon.Exclamation)
            '
        End Try
        '
    End Sub

    'Cette procédure va servir à ajouter un ligne dans la base
    Sub Ajouter(ByVal Code As String, ByVal Designation As String, ByVal prixunit As String)
        '
        'Crée la requête SQL (en passant en paramètres les valeurs de ta table produit)
        Dim Query As String = "INSERT INTO produit (code, designation, prixunit) VALUES ('" & _
                              prixunit & ", '" & _
                              Code & "', '" & _
                              Designation & ", '" & _
                              prixunit & "')"
        '
        'On exécute la requête SQL si la connexion est ouverte
        If Connex.State = ConnectionState.Open Then ExecCommand(Query)
        '
    End Sub

    'Cette procédure va servir à modifier une ligne dans la base
    Sub Edit(ByVal Code As String, ByVal Designation As String, ByVal prixunit As String)
        '
        'Ici, la requête va modifier la designation et le prix de l'article, on identifie le produit par son code.
        Dim Query As String = "UPDATE product SET Designation='" & Designation & _
                              "', prixunit='" & prixunit & "' WHERE (code='" & Code & "')"
        '
        'On exécute la requête SQL si la connexion est ouverte
        If Connex.State = ConnectionState.Open Then ExecCommand(Query)
        '
    End Sub

    'Cette procédure va servir à supprimer une ligne dans la base
    Private Sub Delete(ByVal code As String)
        '
        'La rêquête suivante supprime une ligne de la base, lors ce que son code se trouve être celui passé en paramètre.
        Dim Query As String = "DELETE FROM produit WHERE (code='" & code & "')"
        '
        'On exécute la requête SQL si la connexion est ouverte
        If Connex.State = ConnectionState.Open Then ExecCommand(Query)
        '
    End Sub
    '
    'Cette fonction servirat à lire les données.
    Private Function ReadProducts() As DataTable
        '
        Dim RetDT As New DataTable
        '
        'Ici la requête SQL permettant de récupérer toutes les données de la table
        Dim Query As String = "SELECT * FROM produit"
        '
        Dim SDA As New MySqlDataAdapter(Query, Connex)
        '
        Try
            '
            'Exécute la requête SQL (rempli la table)
            SDA.Fill(RetDT)
            '
        Catch ex As Exception
            '
            MessageBox.Show("Erreur d'accès aux données." & Environment.NewLine & _
                            "Détails de l'erreur : " & ex.Message, _
                            "Erreur", _
                            MessageBoxButtons.OK, _
                            MessageBoxIcon.Exclamation)
            '
        End Try
        '
        'Retourne la table
        Return RetDT
        '
        'Appeler cette fonction te retournera les données de ta table, sous forme de DataTable,
        'tu peux en suite t'en servir pour remplir un DataGridView par exemple :
        'DataGridView1.DataSource = ReadProducts
        '
    End Function


Bien entendu, il te faut remplacer la chaîne de connexion par la bonne, et adapter le code en fonction de tes besoins, je ne poste pas cela pour que tu fasse un vulgaire copier/coller dans ton code et que tu revienne me voir en me disant que cela ne marche pas comme beaucoup le font ici, mais pour que tu t'instruise et que tu apprenne la syntaxe du langage.

Aussi, je tiens à préciser que j'ai saisi ce code 'à la va-vite dans l'IDE de vb sans le tester, il se peu donc qu'il y ai des erreurs.

Question: Que veut dire ton pseudo, que représente l'année 1982 ? Ta date de naissance ou la date de ta caisse

Amicalement, Mayzz.

PS: je t'ai reposté le lien en MP.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
Rejoignez-nous