- - PR -
未入力項目の数値変換
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-09-16 19:40
windows フォーム にて
画面の項目 (金額 txtkingaku) で未入力の時 txtkingaku.text="" となります、が Int32.Parse(txtkingaku.Text) で、 数値変換をしようとするとNULL値の変換は、エラーになります NULL判定をしたうえで変換すればよい事は、承知しておりますが 他にも方法は無いでしょうか?? すみません よろしくお願いいたします | ||||
|
投稿日時: 2003-09-17 08:46
七さんこんにちは。
try { i = Int32.Parse(txtkingaku.Text); } catch { i = 0; //エラーのときの数値 } ではどうでしょうか。 | ||||
|
投稿日時: 2003-09-17 09:39
他でも書いたので、そこにリンク。
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=2216 Convert.ToInt32を使うとnullは0として返ってきます。 | ||||
|
投稿日時: 2003-09-17 10:15
小野@EACさんこんにちは。
Convert.ToInt32(null) は大丈夫ですが、 Convert.ToInt32("") はエラーになりますよ。 | ||||
|
投稿日時: 2003-09-17 11:04
例外処理は“重い”ので、コンバート処理がいくつもあるならヌルチェック(空文字列チェック)をする方が“軽く”なりますね。 たくさん必要なら、TextBoxを継承したクラスを作って、IntValueとかいうプロパティを作って、その中で処理させれば、結果的に“安く”つくかな? | ||||
|
投稿日時: 2003-09-17 11:41
なか-chanさん、小野@EACさん ありがとうございました
画面からの未入力項目は ("") のようですね Convert.ToInt32 では、エラーになりました VBA の時から、ずっと、NULL,"" には足元をすくわれて しまいます。 地道に、NULL対処を、書き込みます。 TRY は、何にでも使用できて、便利ですね。 error 判定 より、TRY なんて文言も良いですね。 どうもありがとうございました 今後とも、また、よろしくお願いいたします | ||||
|
投稿日時: 2003-09-17 11:48
Jitta さん ご教授ありがとうございます
プロパティを作成してみます。 毎度、使うものなんです。 コピーするとは、いえ、毎回、おまけのように 付加しないといけない事に 憤りを感じていました。 ありがとうございました。 | ||||
|
投稿日時: 2003-09-17 13:23
ども、ほむらです。
スレの意図とは違うのでおふとぴとして。 ---------- あとは、表示する時点でコントロールを規定値で初期化しておいて 入力データを渡す時点で入力の正当性を調べちゃうなんてことも、、、 Webページとか昔のアプリではよくある手法ですよね。 いわゆる、プログラム内で流れるデータを範囲内に固定してしまう形です まぁ、注意していないとCSSみたいなセキュリティホールがでますけど |
1