如何在 C# 中将 char(10) [sql server] 替换为其他内容

How to replace char(10) [sql server] to something else in c#

简单问题,我保存到我的数据库中的字符串使用 char(10) 来表示新行,我想在将它保存到数据库之前用 <br /> 替换它,以便它显示为一个实际的新行当我在 html 页面中查看它时。

我该怎么做?因为 c#

中没有 char(10)

我正在使用:

StringName.Replace("char(10)", "<br />");

这是行不通的。

我的代码:

 var InscriptionText = Request["InscriptionText"];
InscriptionText.Replace("\n", "<br />");
var qry = "Instert into .." (normal query)
db.query(qry);

然后我查看数据库中的数据发现它没有替换它并保存为"line1line2line3line4"

在 C# 中你可以这样做:

string breakText1 = "Some text without a line break.";
string breakText2 = "Some text " + Environment.NewLine + "with a line break.";
string breakText3 = "Some text \nwith a new line.";
string breakText4 = "Some text \rwith a carriage return.";

Console.WriteLine("Strings before replace...");
Console.WriteLine(breakText1);
Console.WriteLine(breakText2);
Console.WriteLine(breakText3);
Console.WriteLine(breakText4);

Console.WriteLine("Strings after replace...");
Console.WriteLine(breakText1.Replace("\r\n", "<br />").Replace("\r", "<br />").Replace("\n", "<br />").Replace("<br /><br />", "<br />"));
Console.WriteLine(breakText2.Replace("\r\n", "<br />").Replace("\r", "<br />").Replace("\n", "<br />").Replace("<br /><br />", "<br />"));
Console.WriteLine(breakText3.Replace("\r\n", "<br />").Replace("\r", "<br />").Replace("\n", "<br />").Replace("<br /><br />", "<br />"));
Console.WriteLine(breakText4.Replace("\r\n", "<br />").Replace("\r", "<br />").Replace("\n", "<br />").Replace("<br /><br />", "<br />"));

当然,这可以更优雅地完成,但这可以理解并涵盖 Carriage Return and/or Line Feed 的不同常见组合。

Replace方法returns一个新字符串,需要保存。

只需更改第二行:

var InscriptionText = Request["InscriptionText"];
InscriptionText = InscriptionText.Replace("\n", "<br />");
//...

但是,我建议您不要编辑实际的用户输入。随手保存。并在向用户展示时替换它。只是一个建议!