Meilleur auteur de réponses
Système de licence

Question
-
Bonsoir, comment faire en VB un système de licence sans que se soit quelque chose comme If textbox1.text = "ma licence" then ...
Donc 1) comment faire pour que le logiciel vérifié si elle a le bon algorithme si celui-ci est "abcdklmetGVISW012345678" (si la textbox contient que des caractères définis dans cette chaîne "abcdklmetGVISW012345678" et que la textbox comporte 33 caractères.
Puis que sa vérifie dans une base de données MySQL.
Lorsque la licence ne serait pas encore validée dans la BBD se serait comme sa :
Voila le résultat quand la licence serait validée :
la colonne licence contient toutes les clef de licence et la colonne valider passerait de 0 à 1 si la licence entrée serait valide.
Merci beaucoup par avance.
Theodore Morgado
Réponses
-
Bonjour,
Sub Main() Dim codeAvalider = "....." If ValiderCode(codeAvalider) = False Then MsgBox("Code incorrect")
Exit Sub End If Using connection As MySqlConnection = New MySqlConnection("< Chaîne de connexion >") Using command As MySqlCommand = New MySqlCommand() command.Connection = connection command.CommandText = "UPDATE MaTableLicences SET Valider = 1 WHERE code = @code" command.Parameters.AddWithValue("@code", codeAvalider) connection.Open() If command.ExecuteNonQuery() = 0 Then MsgBox("Code inexistant") Else MsgBox("Code OK !") End If End Using End Using End Sub Public Function ValiderCode(code As String) As Boolean Dim caractèresPossibles As String = "abcdklmetGVISW012345678" For Each caractère As Char In code If caractèresPossibles.Contains(caractère) = False Then Return False End If Next Return True End Function
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCSA : SQL Server 2012
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure- Proposé comme réponse Aurel Bera jeudi 12 décembre 2013 13:39
- Marqué comme réponse Aurel Bera mercredi 18 décembre 2013 09:40
-
Bonjour,
Vous stockez vos codes dans un tableau et vous faites alors une boucle :
Dim tousLesCodesAvalider As String() = {".....", "......", "......"} For Each codeAvalider In tousLesCodesAvalider If ValiderCode(codeAvalider) = False Then MsgBox("Code incorrect") Exit Sub End If Using connection As MySqlConnection = New MySqlConnection("< Chaîne de connexion >") Using command As MySqlCommand = New MySqlCommand() command.Connection = connection command.CommandText = "UPDATE MaTableLicences SET Valider = 1 WHERE code = @code" command.Parameters.AddWithValue("@code", codeAvalider) connection.Open() If command.ExecuteNonQuery() = 0 Then MsgBox("Code inexistant") Else MsgBox("Code OK !") End If End Using End Using Next
Oui la méthode Main() est un module.
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCSA : SQL Server 2012
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure- Marqué comme réponse Aurel Bera mercredi 18 décembre 2013 09:40
Toutes les réponses
-
Bonjour,
Sub Main() Dim codeAvalider = "....." If ValiderCode(codeAvalider) = False Then MsgBox("Code incorrect")
Exit Sub End If Using connection As MySqlConnection = New MySqlConnection("< Chaîne de connexion >") Using command As MySqlCommand = New MySqlCommand() command.Connection = connection command.CommandText = "UPDATE MaTableLicences SET Valider = 1 WHERE code = @code" command.Parameters.AddWithValue("@code", codeAvalider) connection.Open() If command.ExecuteNonQuery() = 0 Then MsgBox("Code inexistant") Else MsgBox("Code OK !") End If End Using End Using End Sub Public Function ValiderCode(code As String) As Boolean Dim caractèresPossibles As String = "abcdklmetGVISW012345678" For Each caractère As Char In code If caractèresPossibles.Contains(caractère) = False Then Return False End If Next Return True End Function
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCSA : SQL Server 2012
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure- Proposé comme réponse Aurel Bera jeudi 12 décembre 2013 13:39
- Marqué comme réponse Aurel Bera mercredi 18 décembre 2013 09:40
-
Bonjour,
le code
Dim codeAvalider = "....."
je dois remplacer les points par la clef de licence?
Et pour
Using connection As MySqlConnection = New MySqlConnection("< Chaîne de connexion >")
je met
Using connection As MySqlConnection = New MySqlConnection("ip du serveur, utilisateur, mot de passe")
?
Theodore Morgado
-
Bonjour,
Oui, remplacez les points par le code à valider.
Pour la chaîne de connexion vous pouvez vous inspirer du site : http://www.connectionstrings.com/mysql/
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCSA : SQL Server 2012
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure -
Bonjour,
Est-ce que vous avez testé les solutions proposées ? Merci de partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.
Cordialement,
Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. -
-
Bonjour,
Vous stockez vos codes dans un tableau et vous faites alors une boucle :
Dim tousLesCodesAvalider As String() = {".....", "......", "......"} For Each codeAvalider In tousLesCodesAvalider If ValiderCode(codeAvalider) = False Then MsgBox("Code incorrect") Exit Sub End If Using connection As MySqlConnection = New MySqlConnection("< Chaîne de connexion >") Using command As MySqlCommand = New MySqlCommand() command.Connection = connection command.CommandText = "UPDATE MaTableLicences SET Valider = 1 WHERE code = @code" command.Parameters.AddWithValue("@code", codeAvalider) connection.Open() If command.ExecuteNonQuery() = 0 Then MsgBox("Code inexistant") Else MsgBox("Code OK !") End If End Using End Using Next
Oui la méthode Main() est un module.
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCSA : SQL Server 2012
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure- Marqué comme réponse Aurel Bera mercredi 18 décembre 2013 09:40