[.NET, C#] traitement des apostrophes dans base de donnée Sqlserver

traitement des apostrophes dans base de donnée Sqlserver [.NET, C#] - C#/.NET managed - Programmation

Marsh Posté le 15-09-2002 à 12:34:35    

Lorsqu'on fait une requete de mise à jour dans une base de donnée, et que la chaine contient ', il faut doubler l'apostrophe pour que la mise à jour soit possible.
Existe - t - il une fonction pour traiter ces chaines ou une option dans Sqlserver pour accepter les apostrophes non doublées.
 
merci d'avance pour votre aide.

Reply

Marsh Posté le 15-09-2002 à 12:34:35   

Reply

Marsh Posté le 17-10-2002 à 17:57:31    

ouais... tu peux changer ton type de recordset..
et tu n'auras pas besoin de doubler tes apostrophes..

Reply

Marsh Posté le 17-10-2002 à 18:08:24    

tu es en ASP ou VB ?
Parceque si tu fais ta requete sql du genre..
 
INSERT INTO maTAble(Champ1) VALUES ('" & VALEUR1 & "';)
en ASP tu peux faire  
INSERT INTO maTAble(Champ1) VALUES ('" & Replace(VALEUR1,"'","''" ) & "';)
 
En VB. ca marche pas (ou peut etre avec SP5 et +)! alors fait une fonction qui va la recherche et qui remplace..
 
mais la meilleur solution est encore de créer un recordset..
Comme suit..(version ASP)
Dim Recordset
Dim StrSQL
 
Set Recordset = Server.CreateObject("ADODB.Recordset" )
StrSQL = "SELECT * FROM MaTable"
 
Recordset.Open StrSQL, MaConnexionaLaBdd, TypeDeCurseur, LockduCurseur
 
'on ajoute une nouvelle ligne a la table
RecordSet.AddNew  
 
Recordset("Champ1" ) = Valeur1
Recordset("Champ2" ) = Valeur2
 
RecordSet.Update
RecordSet.Close
 
 
TypeDeCurseur peut prendre les valeur suivantes (si tu utilises le nom de la variable oublie pas de l'initialiser, sinon fait une recherche sur adovbs.inc)
 
adOpenForwardOnly       = 0 ' Default
adOpenKeyset            = 1
adOpenDynamic           = 2
adOpenStatic            = 3
adOpenUnspecified       = -1
 
 
LockdUCurseur peut prendre les valeurs suivantes
adLockReadOnly          = 1 ' Default
adLockPessimistic       = 2
adLockOptimistic        = 3
adLockBatchOptimistic   = 4
adLockUnspecified       = -1
 
 
 
Bien sur si tu veux faire l'update d'une ligne en particulier..
Ne mets pas Recordset.Addnew
 
 
Dim Recordset
Dim StrSQL
 
Set Recordset = Server.CreateObject("ADODB.Recordset" )
StrSQL = "SELECT * FROM MaTable WHERE ID=" & IDValue
 
Recordset.Open StrSQL, MaConnexionaLaBdd, TypeDeCurseur, LockduCurseur
 
'on modifie la ligne a la table
 
Recordset("Champ1" ) = Valeur1
Recordset("Champ2" ) = Valeur2
 
RecordSet.Update
RecordSet.Close

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed