Can someone explain to me why my code:
string messageBody = 'abc\n' + stringFromDatabaseProcedure;
where valueFromDatabaseProcedure is not a value from the SQL database entered as
'line1\nline2'
results in the string:
'abc\nline1\\nline2'
This has resulted in me scratching my head somewhat.
I am using ASP.NET 1.1.
To clarify,
I am creating string that I need to go into the body of an email on form submit. I mention ASP.NET 1.1 as I do not get the same result using .NET 2.0 in a console app.
All I am doing is adding the strings and when I view the messageBody string I can see that it has escaped the value string.
Update What is not helping me at all is that Outlook is not showing the \n in a text email correctly (unless you reply of forward it). An online mail viewer (even the Exchange webmail) shows \n as a new line as it should.
I just did a quick test on a test NorthwindDb and put in some junk data with a \n in middle. I then queried the data back using straight up ADO.NET and what do you know, it does in fact escape the backslash for you automatically. It has nothing to do with the n it just sees the backslash and escapes it for you. In fact, I also put this into the db: foo’bar and when it came back in C# it was foo\’bar, it escaped that for me as well. My point is, it’s trying to preserve the data as is on the SQL side, so it’s escaping what it thinks it needs to escape. I haven’t found a setting yet to turn that off, but if I do I’ll let you know…