VB.Net Ado. Net Enregistrer du texte dans un colonne avec des caractères spéciau
cs_JeffC1977
Messages postés928Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention23 septembre 2023
-
12 nov. 2009 à 19:46
Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 2020
-
12 nov. 2009 à 22:22
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
A voir également:
VB.Net Ado. Net Enregistrer du texte dans un colonne avec des caractères spéciau