- - PR -
備考で改行するとinsertできない。
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-02-27 10:43
いつもお世話になっています。
Windowsアプリケーションで、テキストボックスを設置しています。 プロパティでMutilineをTrueにして、備考を入力するようにしているのですが、 改行をしてしまうと、以下がinsertされなくなってしまいます。 どなたか解決方法をご存知でしたら、教えてください。 | ||||||||||||
|
投稿日時: 2006-02-27 10:46
具体的なイメージが、ちょっと掴められませんでした。 「以下が Insert できない」というのは、どういう意味でしょうか? データベースに絡んだ話でしょうか? それとも、String.Insert メソッドに絡んだ話なのでしょうか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-02-27 11:08
じゃんぬねっとさん
返信ありがとうございます。 データベースにInsertするという話です。 画面上の[登録]ボタンを押すと、Insert文が呼び出されDBに値を代入するのですが、 テキストボックス上で改行してしまうと、以下が代入されません。 | ||||||||||||
|
投稿日時: 2006-02-27 11:14
・改行コードを何らかの文字列に替えてDBに登録
・表示時はその文字列を改行コードに変換 という手順ではダメなのでしょうか? # スマートじゃないけど・・・ [ メッセージ編集済み 編集者: Katze 編集日時 2006-02-27 11:17 ] | ||||||||||||
|
投稿日時: 2006-02-27 11:17
コードを見せてもらえますか? そうでないと、何が間違っているのか他人が判断できません。 そもそも取得した文字列に期待通りの値が入っているか? クエリの組み方に問題があるか? insert されない、とは何を持って判断したのか? いろんな事が不明です。 _________________ 囚人のジレンマな日々 | ||||||||||||
|
投稿日時: 2006-02-27 11:21
改行コードのせいですね。 INSERT する際に改行コードを取り除いてください。 面倒ならば、String.Replace メソッドで良いでしょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-02-27 13:39
皆様、ありがとうございます。
改行コードと取り除いたら、無事、改行後のテキストもDBに代入することが できました。 | ||||||||||||
|
投稿日時: 2006-02-28 06:20
誤解を与えそうな。。。 おそらく、パラメータバインドを使わずに、文字列として INSERT 文を組み立てているため、改行コードで文が切られているのでしょう。
だから、「改行コードを置換して保存」というのは、解決方法のひとつですが、別の問題もあるわけで。例えば、"'" シングルクォーテーションを入力するとエラーになるとか、そういう「要注意文字」の置換、再置換に抜けが生じるとか。 # Windows アプリケーションだからといって、SQL Injection が行われないわけではない 一時的に他の文字列に変える以外に、対象となるデータベースによっては、エスケープするという方法もあります。(一般にいわれる「サニタイズ」) しかし、パラメータバインドに変更することを強く薦めます。 〆 written by Jitta@わんくま同盟 on 2006/02/27 □ Microsoft MVP for Visual Developer ASP/ASP.NET October, 2005 - September, 2006 |
1