2010-02-28 4 views
0

i ont un problème à insérer la valeur listbox dans la base de données MySQL en vb 2008, soità insérer la liste de valeurs de boîte dans Visual Basic 2008

si je sélectionne un fichier vidéo par exemple D: \ videos \ video1.mpg et ajouter un événement msgbox() avant d'insérer dans la base de données il montre le chemin exact à savoir D: \ videos \ video1.mpg mais quand je vérifie ma base de données il me montre comme D: videosvideo1.mpg comment puis-je résoudre ce ... voici mon code

Dim check As String 
    Dim check_cmd As New MySqlCommand 
    Dim checklist As New MySqlDataAdapter 
    Dim listfile As String 
    Dim time As String 
    time = DateAndTime.Now 

    For L = 0 To bee_shed.Items.Count - 1 
       listfile = bee_shed.Items.Item(L) 

       check = "INSERT INTO schedule(id, listname, videofile, videoduration, videotime) VALUES('', '', '" & listfile & "', '' , '" & time & "')" 
       check_cmd.Connection = con 
       check_cmd.CommandText = check 
       checklist.SelectCommand = check_cmd 
       check_cmd.ExecuteNonQuery() 
       MsgBox(listfile) 
      Next 

Répondre

2

Vous concaténez des instructions SQL brutes et n'échappez pas au backslash.

Vous devez utiliser les paramètres d'utilisation.

Par exemple:

check_cmd.Connection = con 
check_cmd.CommandText = "INSERT INTO schedule(id, listname, videofile, videoduration, videotime) VALUES('', '', ?filename, '' , ?time)" 

For L = 0 To bee_shed.Items.Count - 1 
    listfile = bee_shed.Items.Item(L) 

    check_cmd.Parameters.Clear() 
    check_cmd.Parameters.Add("filename", MySqlDbType.VarChar, 80).Value = listfile 
    check_cmd.Parameters.Add("time", MySqlDbType.Something).Value = time 
    check_cmd.ExecuteNonQuery() 
Next 
Questions connexes