タイトル : Re^4: VB2005で通貨型(MDB)の扱い 投稿日 : 2010/02/25(Thu) 15:06 投稿者 : レモン
魔界の仮面弁士様、引き続きお世話になります。 > 気になるのであれば、実際のデータ型を確認してみてください。 順に、System.Decimal、System.Decimal、Decimalという確認を得られました。 > その結果、VB.NET2002 と VB2005 とで違いがあるかどうかを確認してみてください。 教えを頂く分際で大変恐縮ですが、2003 → 2005です↓ > VB.NET2003 → VB2005 です。書き方がまずく申し訳ありませんでした。 > 一方で、同じ数値/同じデータ型でも、 ToString の結果が異なってしまうパターンも こちらも確認しました。あらためて書式設定の徹底を周知していこうと思いました。 > lbll.Text = CDec(wDT.Rows(0)("aaa")).ToString("0") > lbll.Text = String.Format("{0:0}", wDT.Rows(0)("aaa")) 双方とも"0"表示できる事を確認しました。 > String.Format の場合、上記のように CDec 等が不要となりますし、 今のアプリの仕様では必須入力でない項目もあり、Cdecする方法だと IsDBNull(wDT.Rows(0)("aaa")) = False か?とチェックしないとエラーとなる場合もあり 余分にコードが増えてしまいそうなので、String.Formatの方が適切だと思いました。 ただ(少し余談になりますが)一時的に空文字許可のないワークテーブルの項目へ データを書込むケースもあり、結局、判定コードは必要になりそうですが。 # ちなみにString.Formatはほとんど使った事ないですが「より細かい制御」は # まだちょっと調べただけですが意外と複雑ですね…{0:0}をどう変えればどうなる等々 # 今回の件のついては {0:0} で十分そうですが > 数値だけでは無く、日付もそうですね。 日付の扱いは、以前にも問題になった事がありましたので アドバイスをもとにテストしてみたいと思います。 ※関連する内容でたくさんの情報をいただき、本当に有難うございます。 |