VB.Net Ado. Net Enregistrer du texte dans un colonne avec des caractères spéciau

Signaler
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
-
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
-
Bonjour à tous

Ce message fait suite à un autre Post mais comporte un sujet différent.

Je me programme un application pour gérer ma BD de DVD.
J'ai fais un erreur dans ma BD et j'essais de la corriger avec le code.

Voici mon erreur:
J'ai créé 4 colonnes de type Text pour écrire le synopsys (chaque colonne sne peut pas avoir plus de 250 caractères).
Je viens de me rendre compte que le type mémo dans Access peut contenir asssez de caractères pour créer qu'une seule colonne.

Je veux donc concaténer 4 colonnes de types texte en 1 colonnes de type mémo.

Évidemment j'arrive à une erreur qui doit être dans ma requête SQL mais je ne sais plus où chercher.

Mon erreur se produit au DataAdapter et dit:
Erreur de syntaxe (opérateur absent) dans l'expression 'Le film entremêle trois histoires'.


Ma requête SQL vaut:
UPDATE DVD SET Synopsys Le film entremêle trois histoires, qui finissent par se rejoindre au générique. La première histoire se concentre sur deux tueurs à gages à la solde d'un caïd de la drogue dont la somptueuse épouse semble affectionner l'un d''eux.La deuxième suit un misérable boxeur à qui on a ordonné de perdre qui se rend compte qu'il obtiendrait plus d'argent s'il remportait le match. La troisième histoire suit des amants alors qu'ils se préparent à braquer un restaurant.   WHERE Cle 1




et voici mon code
P.S. j'ai mis des Try car si la cellule est vide j'avais des bugs. C'est ma codé mais ca fonctionne... Disons que je verrai ca plus tard.



 Dim i As Integer
        For i = 1 To NB
            Dim Texte1 As String, Texte2 As String, Texte3 As String, Texte4 As String
            Try
                Texte1 = Replace(DataGridView1.Rows(i - 1).Cells(9).Value, "'", "''")
            Catch ex As Exception
                Texte1 = " "
            End Try
            Try
                Texte2 = Replace(DataGridView1.Rows(i - 1).Cells(10).Value, "'", "''")
            Catch ex As Exception
                Texte2 = " "
            End Try
            Try
                Texte3 = Replace(DataGridView1.Rows(i - 1).Cells(11).Value, "'", "''")
            Catch ex As Exception
                Texte3 = " "
            End Try
            Try
                Texte4 = Replace(DataGridView1.Rows(i - 1).Cells(12).Value, "'", "''")
            Catch ex As Exception
                Texte4 = " "
            End Try
            DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
            RequeteSQL "UPDATE DVD SET Synopsys " & Texte1 + Texte2 + Texte3 + Texte4 & " WHERE Cle = " & i
            Execute("DVD")
        Next i




 Public Sub Connect()

                Repertoire = Application.StartupPath
                Dim SourceConnect As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Repertoire & "\DVD.mdb"
        'MsgBox(Repertoire & "\DVD.accdb")
        SourceOle = New OleDbConnection(SourceConnect)
        Select Case SourceOle.State
            Case ConnectionState.Closed
                SourceOle.Open()
        End Select
    End Sub

    Public Sub Deconnect()
        Select Case SourceOle.State
            Case ConnectionState.Open
                SourceOle.Close()
                SourceOle.Dispose()
                SourceOle = Nothing
        End Select
    End Sub

    Public Function Execute(ByVal table As String) As DataView
        Connect()

        DataA = New OleDbDataAdapter(RequeteSQL, SourceOle)
        Dim DataS As New DataSet
        DataA.Fill(DataS, table)
        Dtt = DataS.Tables(table)

        Try 'la suite n'est pas obligatoire
            Return DataS.Tables(table).DefaultView 'on demande au dataset de renvoyer la reponse de la requetesql sous forme de datagridview
        Catch ex As Exception
            Return Nothing
        Finally
            Deconnect()
        End Try

    End Function

Merci d'avance

1 réponse

Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
31
Salut,

J'ai pas bien compris t'as 4 colonnes ? Dans ta table ?

UPDATE DVD SET Synopsys = Le film entremêle trois histoires, qui finissent par se rejoindre au générique. La première histoire se concentre sur


Et ca c'est ta requête ?

Pour commencer il n'y a pas de '' il faut mettre les apostrophes pour une chaîne de texte sous Sql:

UPDATE DVD SET Synopsys = 'Le film entremêle trois histoires, qui finissent par se rejoindre au générique. La première histoire se concentre sur'


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