- PR -

未入力項目の数値変換

1
投稿者投稿内容
大ベテラン
会議室デビュー日: 2003/09/16
投稿数: 193
お住まい・勤務地: 千葉県
投稿日時: 2003-09-16 19:40
windows フォーム にて

画面の項目 (金額 txtkingaku) で未入力の時
txtkingaku.text="" となります、が
Int32.Parse(txtkingaku.Text) で、
数値変換をしようとするとNULL値の変換は、エラーになります

NULL判定をしたうえで変換すればよい事は、承知しておりますが
他にも方法は無いでしょうか??

 すみません よろしくお願いいたします

なか-chan@最愛のiMac
ぬし
会議室デビュー日: 2002/07/17
投稿数: 385
お住まい・勤務地: 和光市・世田谷区
投稿日時: 2003-09-17 08:46
七さんこんにちは。

try
{
i = Int32.Parse(txtkingaku.Text);
}
catch
{
i = 0; //エラーのときの数値
}
ではどうでしょうか。
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2003-09-17 09:39
他でも書いたので、そこにリンク。

http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=2216

Convert.ToInt32を使うとnullは0として返ってきます。
なか-chan@最愛のiMac
ぬし
会議室デビュー日: 2002/07/17
投稿数: 385
お住まい・勤務地: 和光市・世田谷区
投稿日時: 2003-09-17 10:15
小野@EACさんこんにちは。

Convert.ToInt32(null)
は大丈夫ですが、
Convert.ToInt32("")
はエラーになりますよ。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-09-17 11:04
引用:

なか-chanさんの書き込み (2003-09-17 10:15) より:

Convert.ToInt32("")
はエラーになりますよ。


 例外処理は“重い”ので、コンバート処理がいくつもあるならヌルチェック(空文字列チェック)をする方が“軽く”なりますね。

 たくさん必要なら、TextBoxを継承したクラスを作って、IntValueとかいうプロパティを作って、その中で処理させれば、結果的に“安く”つくかな?
大ベテラン
会議室デビュー日: 2003/09/16
投稿数: 193
お住まい・勤務地: 千葉県
投稿日時: 2003-09-17 11:41
なか-chanさん、小野@EACさん ありがとうございました

画面からの未入力項目は ("") のようですね
Convert.ToInt32 では、エラーになりました

VBA の時から、ずっと、NULL,"" には足元をすくわれて
しまいます。
地道に、NULL対処を、書き込みます。

TRY は、何にでも使用できて、便利ですね。
error 判定 より、TRY なんて文言も良いですね。

 どうもありがとうございました
 今後とも、また、よろしくお願いいたします
大ベテラン
会議室デビュー日: 2003/09/16
投稿数: 193
お住まい・勤務地: 千葉県
投稿日時: 2003-09-17 11:48
Jitta さん ご教授ありがとうございます

プロパティを作成してみます。
毎度、使うものなんです。
コピーするとは、いえ、毎回、おまけのように
付加しないといけない事に
憤りを感じていました。

ありがとうございました。
ほむら
ぬし
会議室デビュー日: 2003/02/28
投稿数: 583
お住まい・勤務地: 東京都
投稿日時: 2003-09-17 13:23
ども、ほむらです。
スレの意図とは違うのでおふとぴとして。
----------
あとは、表示する時点でコントロールを規定値で初期化しておいて
入力データを渡す時点で入力の正当性を調べちゃうなんてことも、、、

Webページとか昔のアプリではよくある手法ですよね。
いわゆる、プログラム内で流れるデータを範囲内に固定してしまう形です

まぁ、注意していないとCSSみたいなセキュリティホールがでますけど
1

スキルアップ/キャリアアップ(JOB@IT)