如何使用SSMS在sql server 2005中存储多行文本?

时间:2012-06-13 11:44:10

标签: asp.net sql-server-2005 database-connection ssms

我对此有类似的问题,但没有得到满意的答案。我想在sql server 2005中将段存储在表中。我尝试了所有数据类型(nvarchar,varchar,text等)但是当我复制内容时,它只存储第一行。帮助我。

我正在使用Sql Server Management Studio并直接将内容复制粘贴到表中。为了检索我使用此代码。

String query2 = String.Format("select data from try where roll=55");
SqlCommand cmd2 = new SqlCommand(query2, conn);
SqlDataReader reader2 = cmd2.ExecuteReader();
if (reader2.Read())
    {
        Label1.Text = reader2.GetValue(0).ToString();

    }

其中'数据'是多行内容。

3 个答案:

答案 0 :(得分:1)

我使用Sql Server 2008-R2进行了一些测试(因此2005年可能会有所不同):

insert into Test1 (Col1) VALUES('THIS
INSERTS

A

Multiline

String')

选择时,结果看起来没有换行符,但如果检查char(10)和char(13) - (CRLF)它们是否存在于字符串中......

select col1, REPLACE(REPLACE(col1,CHAR(10), 'X'),CHAR(13), 'Y') as LineBreaks from Test1

结果: enter image description here

答案 1 :(得分:0)

如果将SSMS设置为以文本而不是网格(工具栏上的按钮)返回值,则可以在文本中看到换行符,它们不会显示在网格视图中。

答案 2 :(得分:0)

我有一个我帮助维护的Web应用程序,我们将数据存储在SQL Server 2008 R2中的多行文本框中 - 使用ADO.Net插入并使用ADO.net进行拉取乍一看似乎是“中断”段落“缺失。要恢复数据的可打印版本的换行符,我使用快速正则表达式将中断放回到Web应用程序中。用于执行此操作的方法如下:

    public static string lineBreakCharsToHTMLBreak(string sourceString)
    {
        // This regex says look for any tab, carriage return or linefeed
        Regex rexNewLine = new Regex("[\\t\\n\\r]");
        sourceString = rexNewLine.Replace(sourceString, "<br>");
        Regex rexDoppleBreak = new Regex("(<br>){2,}");

        sourceString = rexDoppleBreak.Replace(sourceString, "<br>");

        return sourceString;
     }