0

Hi, i would like to share you my problem in order to get solution `cause i gonna be crazy :(
Actualy when i do click to insert button in my form i get this error:

the strange is when i close this window and i do click again the insert button the record is successfully added the the database :(
here my insert code (the necessary because it`s so long):

Try
               
                'build sql requests
                Dim sqlQRY1 As String = "INSERT INTO AUDIO  Values ('" + nomAudio + "')"
                Dim sqlQRY2 As String = "INSERT INTO [IMAGE] Values ('" + nomImage + "')"
                Dim sqlQRY3 As String = "INSERT INTO [TEST](Int_Exa,Rep_Correctes,Nom_Aud,Nom_Img)  Values ('" + nomExamen + "','" + repTest + "','" + nomAudio + "','" + nomImage + "')"
                'ouvrir la connexion
                myConnexion.Open()
               
                'build commands
                Dim cmd1 As OleDbCommand = New OleDbCommand(sqlQRY1, myConnexion)
                Dim cmd2 As OleDbCommand = New OleDbCommand(sqlQRY2, myConnexion)
                Dim cmd3 As OleDbCommand = New OleDbCommand(sqlQRY3, myConnexion)
                'requests execution
                cmd1.ExecuteNonQuery()
                cmd2.ExecuteNonQuery()
                cmd3.ExecuteNonQuery()

                MsgBox("Test successfully addes.", MsgBoxStyle.Information)
                'closing connexion
                myConnexion.Close()
                
            Catch ex As Exception
                MsgBox(ex.ToString)
            Finally
                myConnexion.Close()
            End Try

i would ask why in first click he show me error but in the second it worked although it`s the same operation, the same form without changing anything in his components and fields . thx in advance.

Attachments error_message.jpg 40.08 KB
3
Contributors
7
Replies
8
Views
7 Years
Discussion Span
Last Post by lucaazori
0

Without knowing the following, it is impossible to tell you what's going on:

1. The values and types of your variables: nomAudio, nomImage, nomExamen and repTest
2. What exactly is line 119

What also might help is knowing the structure of your database. At the tables AUDIO, [IMAGE], and [TEST] and their dependencies.

0

Hi, my variables nomAudio, nomImage, nomExamen and repTest have all String type.
the line 119 is this (i tried to work without try catch and the debogger stopped in this line, so i think it`s the 119 line):

System.IO.File.Copy(imageToCopy, newImage)

and for my dataBase structure:

hope this help, thanks in advance ;)

Attachments data_base.jpg 27.49 KB
0

salut
fais attention a ce qu'il n'ya pas de caractere illegaux dans imageToCopy ou newImage
des caractere comme :\/<>?|*"
moi je pense que tu as une " quelque part ;)
et c'est myConnection et non pa myConnexion :p

Edited by ÜnLoCo: n/a

0

Hi, i have checked the name of all the images, there is no special characters from your list :\/<>?|*", all the image`s names are composed of alphanumeric characters. besides i have a function which have the job to return a new name every time i add an image or audio, here is the code of this function:

Module Module1
    'les 2 tableaux déclarés ci-dessous sert pour la fonction calculerNom

    'un tableau contiendra les chiffres de 0 à 9
    Public tabInt(10) As Integer

    'un tableau contiendra les lettres de l`alphabet
    Public tabChar(26) As Char

    'fonction pour calculer un nouveau nom a partir d`un nom donné

    Public Function calculerNom()
        Dim i As Integer
        'initialisation des élèments du tabInt 
        For i = 0 To 9
            tabInt(i) = i
        Next i
        'initialisation des élèments du tabChar
        tabChar(0) = "A"
        tabChar(1) = "B"
        tabChar(2) = "C"
        tabChar(3) = "D"
        tabChar(4) = "E"
        tabChar(5) = "F"
        tabChar(6) = "G"
        tabChar(7) = "H"
        tabChar(8) = "I"
        tabChar(9) = "J"
        tabChar(10) = "K"
        tabChar(11) = "L"
        tabChar(12) = "M"
        tabChar(13) = "N"
        tabChar(14) = "O"
        tabChar(15) = "P"
        tabChar(16) = "Q"
        tabChar(17) = "R"
        tabChar(18) = "S"
        tabChar(19) = "T"
        tabChar(20) = "U"
        tabChar(21) = "V"
        tabChar(22) = "W"
        tabChar(23) = "X"
        tabChar(24) = "Y"
        tabChar(25) = "Z"
        'une variable de la classe Random
        Dim A1 As New Random()
        Dim A2 As New Random()
        Dim chiffreChoisi As Integer 'indique l`indice aléatoire du chiffre à extraire
        Dim lettreChoisi As Integer 'indique l`indice aléatoire du caractère à extraire
        'le nouveau nom 
        Dim nouveauNom As String = ""
        For i = 0 To 5
            chiffreChoisi = A1.Next(0, 10)
            nouveauNom = nouveauNom + tabInt(chiffreChoisi).ToString
            lettreChoisi = A2.Next(0, 27)
            nouveauNom = nouveauNom + tabChar(lettreChoisi).ToString
        Next
        Return nouveauNom
    End Function
End Module

i don`t understand why the program doesn`t accept the first time but in second time every think go correctly :(

0

i forget one thing, you were right, there is special characters in the imageToCopy String, example:
D:\presta\Mahraz\Serie-02\S02Q04.jpg
so there is ":"
how should i correct this, VB need the old path wich is imageToCopy string, if i delete the ":" from the imageToCopy the path become unknown, is there any solution??

Edited by lucaazori: n/a

0

the ":" in D:\presta\Mahraz\Serie-02\S02Q04.jpg is not an illegal char !!
in this case it would be
D:\presta\Mahraz\Serie-02\S02:Q04.jpg
you see ?
you can make a breakpoint at line 119 and check ! maybe you're missing something.

Edited by ÜnLoCo: n/a

0

Hi, i tried the breakpoint, he stopped in this line:

System.IO.File.Copy(imageToCopy, newImage)

as you said :)
the problem certainly comes from this line but how to prevent this error still the problem ??

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.