Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将带有的数据库字符串值\r\n放入wpf文本框中_C#_Wpf_Xaml_Textbox - Fatal编程技术网

C# 将带有的数据库字符串值\r\n放入wpf文本框中

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 (

我正在使用.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
 (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";