无法处理字符串中的反斜杠或转义符



以下字符串是示例。字符串来自api的响应。

string s = "string contain another string(< a href ="https:")";
string text = "This is a "string" in C#.";
string text1 = "This is a na test nb.";

我想替换"用"\"因为我想把这个值传递给Postgresql。

即使列具有相同的值,postgresql中也只有一个反斜杠不起作用。它适用于pgadmin或azure数据工作室的双斜杠"\"或三斜杠"\。

我正在使用C#中的linq来连接postgresql。

如何进行

在第一个/第二个字符串中介绍字符串内部的字符串使用"作为双引号

--这个代码运行良好。

if (s.Contains("""))
{
s = s.Replace(""", "\"");
}
-- It is not working
if (s.Contains("n"))
{
s = s.Replace("n", "\n");
}

我哪里错了。

它将此字符串("This is a na test nb.";(替换为("This is a \na test \nb.";(

从C#并没有得到值,但当我用类似的语句复制并粘贴到pgadmin中时,它就工作了。

var result = (from t in DbTestContext.Test
where t.TestName.Trim().ToLower().Contains(S.Trim().ToLower())
select new
{
TestStartDate = t.TestStartDate,
}).FirstOrDefault();

您尝试在SQL字符串中插入换行n的位置是错误的。您不需要实际的换行符,而是需要一个由字母n组成的反斜杠。所以,写:

s = s.Replace("n", "\n");

在第一串CCD_ 5中;真实的";换行。

第二个字符串是C#中的反斜杠+'n'。PostgreSQL会将其解释为换行。

最新更新