C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: デザイナで文字列をINSERTするとき改行を入れたい


(過去ログ 107 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■63733 / inTopicNo.1)  デザイナで文字列をINSERTするとき改行を入れたい
  
□投稿者/ くま (6回)-(2012/10/02(Tue) 10:00:33)

分類:[C#] 

環境
Visual C# 2010 Express
Sql Server 2008 ?

データベースの値をRichtextboxに代入したいのですが
代入するとき改行を入れたいのです。
\r\nで試みましたが、だめでした。

データベースデザイナで改行を持つテキストをコピペして
入力できればいいのですが一行目だけ入力されます。

データベースデザイナで改行を持つテキストをINSERTする方法を教えてください!!!

当方C#初心者です。
引用返信 編集キー/
■63734 / inTopicNo.2)  Re[1]: デザイナで文字列をINSERTするとき改行を入れたい
□投稿者/ 魔界の仮面弁士 (62回)-(2012/10/02(Tue) 14:08:50)
No63733 (くま さん) に返信
> データベースの値をRichtextboxに代入したいのですが
自分の場合は、DB 側に
 表示用 … richTextBox1.Rtf
 検索用 … richTextBox1.Text
の両方の項目をセットしています。


> 代入するとき改行を入れたいのです。
> \r\nで試みましたが、だめでした。
駄目というのは、具体的にはどうなってしまうのでしょうか?

もし、本当に「\r\n」という文字列として出力されてしまうのであれば、
エスケープシーケンスの取り扱いが誤っている可能性があります。

richTextBox1.Text = "一行目\r\n二行目\r\n三行目";
richTextBox2.Text = @"一行目\\r\\n二行目\\r\\n三行目";
richTextBox3.Text = @"一行目
二行目
三行目";



また、もしも Text プロパティではなく Rtf プロパティで改行したいなら、
「\line」(Line Break)か「\par」(段落の終了)を指定すると


// 下記は、物理改行を含めずに一行で書いても同じ結果になります。

richTextBox1.Rtf = @"{\rtf1\ansi\deff0
{\fonttbl{\f0\fnil\fcharset128 MS UI Gothic;}}
\viewkind4\uc1\pard\lang1041\f0\fs18
\'88\'ea\'8d\'73\'96\'da\line
\'93\'f1\'8d\'73\'96\'da\par
\'8e\'4f\'8d\'73\'96\'da
}";

引用返信 編集キー/
■63735 / inTopicNo.3)  Re[2]: デザイナで文字列をINSERTするとき改行を入れたい
□投稿者/ くま (7回)-(2012/10/02(Tue) 15:05:11)
魔界の仮面弁士さんがおっしゃる通りrichTextBox1.Text = "一行目\r\n二行目\r\n三行目";でやってみたのですが

できました。

しかし、richTextBox1.Text = dataGridView1.SelectedRows[0].Cells[1].Value.ToString(); // (dataGridView1にはデータソース(SQL Server)がセットされている)

では、改行されずそのまま「\r\n」が表示されてしまいます。

SQL  →  dataGridView  →  richTextBox

このいくつかの段階で\r\nが\\r\\nになってるような感じがします...
引用返信 編集キー/
■63736 / inTopicNo.4)  Re[3]: デザイナで文字列をINSERTするとき改行を入れたい
□投稿者/ くま (8回)-(2012/10/02(Tue) 15:12:34)
richTextBox1.Text = (new Regex(@"\\r\\n", RegexOptions.Singleline)).Replace(dataGridView1.SelectedRows[0].Cells[1].Value.ToString(), "\r\n");

でできました。

ありがとうございました。
解決済み
引用返信 編集キー/
■63737 / inTopicNo.5)  Re[3]: デザイナで文字列をINSERTするとき改行を入れたい
□投稿者/ 魔界の仮面弁士 (63回)-(2012/10/02(Tue) 18:24:08)
No63735 (くま さん) に返信
> しかし、richTextBox1.Text = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
> // (dataGridView1にはデータソース(SQL Server)がセットされている)
> では、改行されずそのまま「\r\n」が表示されてしまいます。

データベース側に格納されているデータに対して、「\r\n という文字列」ではなく、
「改行そのもの」を直接入れておけば、アプリ側での置換作業は不要になる筈ですよ。


CREATE TABLE TEST (
 ID int IDENTITY(1,1) PRIMARY KEY
,TEXT NVARCHAR(1000)
)

INSERT INTO TEST ( TEXT ) VALUES (
'一行目
二行目
三行目'
)

INSERT INTO TEST ( TEXT ) VALUES (
'一行目' + NCHAR(13) + NCHAR(10) +
'二行目' + NCHAR(13) + NCHAR(10) +
'三行目'
)

-- これだと改行の意味にはならない
INSERT INTO TEST ( TEXT ) VALUES (
'一行目\r\n二行目\r\n三行目'
)

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -