1

私はこれと同様の質問を受けましたが、満足のいく答えは得られませんでした。SQL Server 2005のテーブルに段落を保存したい。すべてのデータ型(nvarchar、varchar、textなど)を試しましたが、コンテンツをコピーすると、1行目しか保存されません。助けて。

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();

    }

ここで、「data」は複数行のコンテンツです。

4

3 に答える 3

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

結果: ここに画像の説明を入力

于 2012-06-13T12:37:51.223 に答える
0

グリッドではなくテキストとして値を返すようにSSMSを設定した場合(ツールバーのボタン)、テキストに改行が表示され、グリッドビューには表示されません。

于 2012-06-13T12:51:05.053 に答える
0

私は維持を支援するWebアプリケーションを持っています.SQLサーバー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;
     }
于 2012-06-13T12:52:38.437 に答える