Problème délicat ... [.NET]

Résolu
Mickylord Messages postés 63 Date d'inscription mardi 25 décembre 2001 Statut Membre Dernière intervention 11 février 2007 - 17 déc. 2004 à 00:04
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 17 déc. 2004 à 15:32
Alors ici j'essay de faire en sorte d'envoyer un email, ( ce qui fonctionne parfaitement ) le probleme est que j'aimerai le personnaliser, donc :

quand je met [nom] dans un textbox, il doit etre remplacer par le nom de la personne enregistré dans une base de donnée, le code donne ca :

Do until Not myreader.Read()

Dim ResultatFinal as string
Dim Resultatsujet as string
Dim ResultatRequete as string
Dim ResultatRequetes as string
dim ContenuLexique as string
dim nom as string

ResultatRequete = Textbox1.Text
ContenuLexique = "[nom]"

ResultatFinal = replace(ResultatRequete,ContenuLexique, CType(myReader("pseudo"), string))
ResultatRequetes = Textbox2.Text
Resultatsujet = replace(ResultatRequetes,ContenuLexique, CType(myReader("pseudo"), string))

Dim mMailMessage As New System.Web.Mail.MailMessage()

mMailMessage.From = Label1.Text
mMailMessage.To = CType(myReader("email"), String)
mMailMessage.Subject = Resultatsujet
mMailMessage.Body = ResultatFinal
mMailMessage.BodyFormat = System.Web.Mail.MailFormat.HTML
mMailMessage.Priority = System.Web.Mail.MailPriority.Normal

System.Web.Mail.SmtpMail.Send(mMailMessage)
loop

[ je me suis servit d'une source de jesusonline, merci :) ]

Alors tout marche bien sauf une chose :
quand je recoi un mail, le nom est correctement ajouté mais il y a une énorme série d'espace entre le nom et le reste du texte, je me retrouve avec :
---
salut Mickylord reste du texte ...
----

je suis presque sur que cela viens du CType(myReader("pseudo"), string), mais je ne sais pas de quoi ... J'ai essayé de changé string en char et cela marche,
parcontre au lieu d'avoir le nom en entier je n'ai que la premiere lettre ;)

3 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
17 déc. 2004 à 02:59
Il me semble que cela vient du type de champ de ta base.

ta base doit avoir une longueur fixe, par exemple 32 et si tu met un pseudo de 4 lettres ton ben dans ta base il te met 4 lettre et remplis le champ d'espace pour aller jusqu'a 32, je pense que c'est un truc du style.

pour le verifier tu peux regarder la taille du champ, et si a chaque user c'est le meme c'est que le problème doit etre ici :)

pour savoir le nombre de caractère du champ :
mMailMessage.Body = ResultatFinal & " " & CType(myReader("pseudo"), string).Length

pour résoudre ton problème deux solutions, soit de le traiter à la source, malheureusement je connais encore pas assez SQL pour te certifier une solution. Change le type de ton champ en nvarchar ou ntext, et surtout créer un nouvel enregistrement pour controler, tes anciens enregistrement sont remplis avec des espaces, et en changeant le type de champ il va pas supprimer les espaces :)

l'autre solution c'est du pur VB, un truc du genre
CType(myReader("pseudo"), string).replace(" "," ")

tu auras un espace apres la fin de ton pseudo, mais je pense pas qu'il faille passer par VB pour regler ton problème, mieux vaut le regler sous SQL.
des sites pour SQL : sql.developpez.com, sqlfr.com

Cyril
3
Mickylord Messages postés 63 Date d'inscription mardi 25 décembre 2001 Statut Membre Dernière intervention 11 février 2007
17 déc. 2004 à 12:30
décidément, merci beaucoup Jesusonline :D

Tu a touché dans le mile consernant le programme, il suffisais de remplacer le champs que j'avais mis de type char en varchar, et ca marche parfaitement.
Merci encore :)
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
17 déc. 2004 à 15:32
:) Tant mieux

petite parenthèse je prefere etre appellé Cyril plutot que JesusOnLine ;) et je me souviens pas de la source dont tu parles, t'es sur que c'est moi et pas Fabrice69 ? ou peut etre que j'ai oublié cette source :big) mais je crois que c'est F__ qui a fait une source surl'envoie de mail en .net :)

Cyril
0
Rejoignez-nous