数据表更新后,新行将在SQL中被删除

时间:2012-05-24 15:48:44

标签: c# sql-server newline

我有一个数据表可以通过删除html来修改。在html条带中,如果遇到<br><p><li>,则会将其替换为System.Environment.NewLine。我正在将html strip进程的实例记录到文本文件中,并且日志中的格式看起来很好(所有CRLF都被保留)。但是,当在数据表上调用update方法并且数据被发送到数据库时,CRLF字符全部消失。

代码段:

public static class HtmlStripper
{
    static Regex _htmlRegex = new Regex("<.*?>", RegexOptions.Compiled);
    static Regex _liRegex = new Regex("<li>", RegexOptions.Compiled);
    static Regex _brRegex = new Regex("<(br)?(BR)?\\s?/?>\\s*", RegexOptions.Compiled);
    static Regex _pRegex = new Regex("</?[phPH].*?>\\s*", RegexOptions.Compiled);

    public static string StripTagsRegexCompiled(string source)
    {
        string noPorH = _pRegex.Replace(source, System.Environment.NewLine);
        string noBr = _brRegex.Replace(noPorH, System.Environment.NewLine);
        string noLi = _liRegex.Replace(noBr, System.Environment.NewLine + "t- ");
        return _htmlRegex.Replace(noLi, string.Empty);
    }

}

1 个答案:

答案 0 :(得分:0)

SSMS删除数据网格中的CRLF - 但它们仍然存在于数据库中。您可以通过按CTRL-T来证明这一点,CTRL-D将结果转换为TEXT而不是GRID。然后,您可以按SELECT 'Not' + CHAR(10) + CHAR(13) + 'Together' 返回将结果显示在GRID中。

你可以用以下方法测试:

(No Column name)
Not  Together

首先在GRID中显示结果:

SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time = 0 ms.

-------------
Not

Together

(1 row(s) affected)


SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time = 0 ms.

SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

然后在TEXT结果中:

{{1}}