2010-06-05 9 views
1

Une de ma valeur de la colonne datatable ressemble le ci-dessous,Comment remplacer le caractère suivant par un espace vide?

alt text http://img101.imageshack.us/img101/200/datatable.jpg

Comment remplacer ce caractère qui est de forme carrée avec un \n ou un espace vide en utilisant C#? Toute suggestion ...

ClientAddress colonne contient la valeur d'une zone de texte multiligne ....

Le caractère ci-dessus est insérée dans ma table à partir d'une zone de texte multiligne lorsque l'utilisateur entre un mot et frappe sur la touche Entrée, puis types un autre mot ...

Répondre

1

Il est presque certain que la forme carrée est simplement utilisée pour indiquer un caractère qui n'est pas dans la police utilisée pour afficher la chaîne. En d'autres termes, il pourrait s'agir de l'un des milliers de caractères dont l'ensemble diffère selon les polices. Il est difficile de vous dire quoi faire sans connaître votre situation.

Si votre situation est que le carré représente toujours la touche Entrée et que vous affichez les résultats au format HTML, vous aurez besoin de quelque chose comme ClientAddress.Replace("\n", "<br>").

+0

il est inséré dans ma table à partir d'une zone de texte multiligne lorsque l'utilisateur entre un mot et frappe touche entrée, puis tape un autre mot ... –

+0

Puisqu'il vient d'une touche d'entrée, il est presque certainement un nouvelle ligne. Si vous essayez d'afficher le texte en HTML, cependant, vous devez faire quelque chose comme 'ClientAddress.Replace (" \ n ","
")'. – Gabe

0

vous coucld utiliser la fonction Replace:

UPDATE tablename 
SET ClientAddress = Replace(ClientAddress, '□', '\n'); 

Si vous devez changer à ce qui est vraiment à l'intérieur e base de données

+0

regardez mon edit –

2

Je ferais une substitution simple, mais puisque vous ne savez pas exactement quel caractère il faut vous adresser différemment. En utilisant LINQ et string.Join, vous pouvez remplacer n'importe quel caractère de contrôle par un saut de ligne ou un espace et affecter le résultat à une nouvelle chaîne.

var printableClientAddress = 
    string.Join("", client.ClientAddress 
          .Select(c => char.IsControl(c) 
              ? Environment.NewLine 
              : c) 
          .ToArray()); 
+0

Ceci ne couvre pas les caractères Unicode qui ne sont pas supportés par le jeu de caractères db. –

0

Ce carré est probablement un caractère qui n'est pas pris en charge par votre jeu de caractères. Vous devrez vérifier si la valeur numérique de chaque caractère se trouve dans la plage imprimable de votre jeu de caractères et, dans le cas contraire, le remplacer.

Questions connexes