Bonjour besoin d'aide svp message d'erreur

Résolu
Robert.Franck Messages postés 24 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 23 juillet 2017 - Modifié le 23 juil. 2017 à 00:34
Robert.Franck Messages postés 24 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 23 juillet 2017 - 23 juil. 2017 à 23:23

5 réponses

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
23 juil. 2017 à 00:50
Bonsoir

comment veux tu qu'on réponde à ça?

La seule info que tu nous donnes est un message d'erreur qui dit qu'il ne sait pas de quel type d'erreur il s'agit.
Déjà quand on nous donne le code qui génère l'erreur, un peu de contexte et quand on a de la chance le contenu des variables, on ne trouve pas toujours du premier coup.

Alors commençons par le commencement, quel est le type de ton projet, console, winform, wpf?
As tu essayé de faire du pas à pas depuis le point d'entrée du programme pour voir où ça plante?
Si oui, code, contexte, contenu des variables?


1
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
23 juil. 2017 à 14:16
Si ça fait ça avec tout tes projets, c'est probablement un problème lié à Visual Studio ou à la framework.
As tu essayé de les réinstaller?

Par contre puisque tu as posté ce code, je me permets quelques critiques.

Déjà tu mélanges VB6 et VB.Net, c'est autorisé par Microsoft, la plupart du temps ça marche, mais quand ça buggue, il est très difficile de trouver pourquoi.
Par défaut, il est conseillé de virer l'import de VisualBasic, voir cet article.

Ensuite donne des noms à tes contrôles, Form1 TextBox1 etc... c'est pas pratique à maintenir, quand tu y reviendra dans 1 an, tu ne sauras plus à quoi il servent.
Une pratique courante est de mettre un préfixe (3 ou 4 caratères) qui donne le type du control, par exemple frm pour Form, txb pour TextBox suivi d'un nom clair en CamelCase => frmPrincipale, frmDemarrage, txbMotDePasse etc....

charactere(CShort(Rnd() * 35))
les index de tableaux sont des entiers sur 32 bits, donc tu fais une première conversion en entier 16 bits et la framework en refait une derrière toi de 16 bits à 32, passer direct en 32 bits serait plus optimisé, (idem pour ta variable a).

Encore mieux, en codant en VB.Net et pas en VB6:
    Dim monRandom As new Random()
    Private Sub generate_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles generate.Click
         '.... du code à toi avant
         pass = pass & charactere(monRandom.Next(36))'c'est directement un int inférieur ou égal à 36
         '.... du code à toi après



        While (a <= 23)
            '...
            a = a + 1
        End While

Un for serait plus adapté
For a = 0 to 23
   '...
Next



en 2017, ça c'est tout simplement pas possible
        charactere(0) = "a"
        charactere(1) = "b"
        charactere(2) = "c"
        charactere(3) = "d"
        charactere(4) = "e"
        charactere(5) = "f"
        charactere(6) = "g"
        charactere(7) = "h"
        charactere(8) = "i"
        charactere(9) = "j"
        charactere(10) = "k"
        charactere(11) = "l"
        charactere(12) = "m"
        charactere(13) = "n"
        charactere(14) = "o"
        charactere(15) = "p"
        charactere(16) = "q"
        charactere(17) = "r"
        charactere(18) = "s"
        charactere(19) = "t"
        charactere(20) = "u"
        charactere(21) = "v"
        charactere(22) = "w"
        charactere(23) = "x"
        charactere(24) = "y"
        charactere(25) = "z"
        charactere(26) = "0"
        charactere(27) = "1"
        charactere(28) = "2"
        charactere(29) = "3"
        charactere(30) = "4"
        charactere(31) = "5"
        charactere(32) = "6"
        charactere(33) = "7"
        charactere(34) = "8"
        charactere(35) = "9"

D'une part un tableau dont on connait les valeurs à l'intialisation ça s'initialise comme ça
Dim charactere() As Char = { "a"c, "b"c, "c"c, etc.... }

Et puis dans ce cas précis tu pourrais aussi faire un for sur les codes Ascii des lettres (97 à 122) et un second sur le chiffres (48 à 47).
En aparté, un mot de passe avec juste des minuscules et des chiffres c'est pas très sécurisé.


Et d'ailleurs en se servant du code Ascii, y'a même pas besoin de ce tableau

    Dim monRandom As new Random()
    Private Sub generate_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles generate.Click
            For i As Integer = 0 To 23
                Dim rand As Integer = monRandom.Next(36)
                Dim ascii As Integer = If(rand < 26, rand + 97, rand + 22)
                pass += Convert.ToChar(ascii).ToString()
            Next i
 
en respectant le modèle juste des chiffres et des minuscules, sinon il suffit de faire entre les caractères 33 et 126.

Enfin, je suppose que Form1 est ton formulaire de démarrage, alors ceci
    'Ferme completement le programme
    Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
        End
    End Sub
ne sert à rien. En effet, dès que Form1 est fermée, le programme est fini.
1
Robert.Franck Messages postés 24 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 23 juillet 2017
23 juil. 2017 à 10:53
Bonjour,

Oui désole mon projet est un générateur de mot de passe pour une autre application utilisant un login

j'ai regarder par tout mais je ne vois pas ou serait l'erreur surtout que sa me fait ça sur tout mes projet de puis que je suis passer de de Visual Studio 2015 à 2017


Voici le code :

Option Strict Off
Option Explicit On
Imports MySql.Data.MySqlClient
Imports System.Threading
Imports System.Text

Friend Class Form1
Inherits System.Windows.Forms.Form
Dim a As Short
Dim pass As String
Dim charactere(35) As String
Public Function IsConnectionAvailable() As Boolean
Dim objUrl As New System.Uri("http://www.youtube.com")
Dim objWebReq As System.Net.WebRequest
objWebReq = System.Net.WebRequest.Create(objUrl)
Dim objresp As System.Net.WebResponse

Try
objresp = objWebReq.GetResponse
objresp.Close()
objresp = Nothing
Return True

Catch ex As Exception
objresp = Nothing
objWebReq = Nothing
Return False
End Try
End Function
Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
If IsConnectionAvailable() = True Then
Else
MsgBox("Cette application requiert une connexion internet et va fermer")
End
End If
' genere 2
charactere(0) = "a"
charactere(1) = "b"
charactere(2) = "c"
charactere(3) = "d"
charactere(4) = "e"
charactere(5) = "f"
charactere(6) = "g"
charactere(7) = "h"
charactere(8) = "i"
charactere(9) = "j"
charactere(10) = "k"
charactere(11) = "l"
charactere(12) = "m"
charactere(13) = "n"
charactere(14) = "o"
charactere(15) = "p"
charactere(16) = "q"
charactere(17) = "r"
charactere(18) = "s"
charactere(19) = "t"
charactere(20) = "u"
charactere(21) = "v"
charactere(22) = "w"
charactere(23) = "x"
charactere(24) = "y"
charactere(25) = "z"
charactere(26) = "0"
charactere(27) = "1"
charactere(28) = "2"
charactere(29) = "3"
charactere(30) = "4"
charactere(31) = "5"
charactere(32) = "6"
charactere(33) = "7"
charactere(34) = "8"
charactere(35) = "9"













End Sub

Private Sub generate_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles generate.Click


'genere un mot de passe

Randomize()
pass = ""
a = 0
While (a <= 23)
pass = pass & charactere(CShort(Rnd() * 35))
a = a + 1
End While
TextBox1.Text = pass
My.Computer.Clipboard.Clear()
My.Computer.Clipboard.SetText(TextBox1.Text)

Dim UserRec = Me.TextBox2.Text

'connection a base de donne
Dim Mysqlconnection As New MySqlConnection
Mysqlconnection.ConnectionString = "server=ip;Port=3306; User ID=username; password=mot de passe; database=lop_forum"
Dim reader As MySqlDataReader
Dim command As New MySqlCommand
Try
Mysqlconnection.Open()
Dim query As String
query = "SELECT * FROM juju_forum.xf_user WHERE user_id='" & UserRec & "'"
query = "UPDATE test_forum.xf_user SET credits='" & TextBox1.Text & "'"
command = New MySqlCommand(query, Mysqlconnection)
reader = command.ExecuteReader
MsgBox("La clé a bien été générer")



Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
Clipboard.SetText(TextBox1.Text)
Dim TextCopie As String = Clipboard.GetText()
Catch ex As Exception
MsgBox("Vous devez d'abord générer un MDP !")
End Try




End Sub
'Ferme completement le programme
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
End
End Sub
End Class
0
Robert.Franck Messages postés 24 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 23 juillet 2017
23 juil. 2017 à 17:19
Clair est précis merci j'ai trouve le problème c'est le débogueur avec ça me mais cette erreur et sans ça fonctionne

j'ai désinstaller tout je suis en train de réinstaller


PS.Merci pour ta critique
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
23 juil. 2017 à 17:57
Tant mieux si tu as trouvé et de rien
0

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

Posez votre question
Robert.Franck Messages postés 24 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 23 juillet 2017
23 juil. 2017 à 23:23
Voilà désinstaller avec CCleaner gros nettoyage est redémarrage du pc puis réinstaller ça refonctionne merci
0
Rejoignez-nous