C# 将带有的数据库字符串值\r\n放入wpf文本框中
我正在使用.edmx创建一个用于数据库连接的小应用程序 在我的数据库中,我创建了一个具有示例值的字符串:C# 将带有的数据库字符串值\r\n放入wpf文本框中,c#,wpf,xaml,textbox,C#,Wpf,Xaml,Textbox,我正在使用.edmx创建一个用于数据库连接的小应用程序 在我的数据库中,我创建了一个具有示例值的字符串: this is:\r\nA new line 在调试中调用此值时,我看到该值更改为 this is:\\r\\nA new line 导致wpf文本框显示 this is:\r\nA new line 而不是 this is: A new line 你有没有想过我做错了什么 编辑: 这些值通过t-SQL命令存储在数据库中。我还在启动这个项目 Insert into Atable (
this is:\r\nA new line
在调试中调用此值时,我看到该值更改为
this is:\\r\\nA new line
导致wpf文本框显示
this is:\r\nA new line
而不是
this is:
A new line
你有没有想过我做错了什么
编辑:
这些值通过t-SQL命令存储在数据库中。我还在启动这个项目
Insert into Atable
(ID, value)
VALUES
(1, 'this is:\r\nA new line')
因为在sql中\r没有任何特殊的含义。在c语言中,\r与ascii字符10相同,不可打印。您试图创建的是一个转义序列,它只存在于c中
如果您在c中创建转义字符并将其保存到sql,它将很好地读回。但是如果您在sql中键入转义字符,它将不是您所期望的
因此,在sql查询中,您可以执行以下操作:
选择“这是:”+CHAR13+CHAR10+“一个新行”-与c中的\n\r相同
在c语言中,应该是
string message = "this is\r\nAnew line"
或者,最好使用内置的
string message = "this is" + Environment.NewLine + "A new line";
您使用的是什么操作系统?您是如何将该字符串输入数据库的?我猜您使用的任何工具都没有将\r\n序列读取为回车+换行符,而是读取为文本序列斜杠,r,斜杠,n,在这种情况下,输出是正确的。因此,要么正确存储字符串,或者在C端手动处理转义序列。windows将从数据库中一次读取一个字符,因此当它读取转义序列时,将看到\并自动将其更改为\\,因此您需要一个函数来检查\\r\\n并将其更改为system.Environment.newline。您是如何在数据库中创建此值的?如果您在某个工具中键入“\”,它可能被存储为\\@RobertLevy我使用T-SQL命令添加了值请参见编辑,这用于在任何情况下重建数据库。我将尽快尝试使用此工具
string message = "this is" + Environment.NewLine + "A new line";