まとまりのないブログ

something which something is something

vb.net

System.ArgumentException: 入力文字列の形式が正しくありません。列 initial_money に を格納できませんでした。 必要な型は Double です。 —> System.FormatException: 入力文字列の形式が正しくありません。

投稿日:

datagridviewにデータをバインドした時のこと。データグリッドへバインドされたテーブルのセルの値を変更しようと思って文字列を挿入しようとしたら

System.ArgumentException: 入力文字列の形式が正しくありません。列 initial_money に <-11809 -11809> を格納できませんでした。 必要な型は Double です。 —> System.FormatException: 入力文字列の形式が正しくありません。

(省略)

というエラーが出て挿入することができなかった。エラーの意味はわかるけれど、わからないのはいつの間にか列の型がdoubleという風に指定されていたということ。これは一体いつの間に決まってしまったのだろう。

そもそもデータグリッドの列に型が存在することをこの時に始めて知った。文字列とか数値とか画像とかいろいろ入れることができるのでobject型のようなものが設定されているかと思ったらもっと厳密に文字列ならstring型、数値ならdouble型という風にできている模様。

この今回のエラーのdouble型じゃないから数値を格納できないという、doubleという型が勝手に決められてしまったことが一番わからない。私はdouble型なんてどこにも使ってないのだから。

データグリッドにバインドした時に列の値が数値ならdouble型と判定されてしまうのか、それともdatasetを作成した時にそれは判定されてしまうのか、それとも何か他の知らないルールがあるのか。調査中。

その後

こんなエラーが発生した。

プロバイダで Double 値を特定できませんでした。たとえば、行が作成されたときに Double 列の既定値が使用できない状態で、使用者が新しい Double 値を設定していなかった場合が考えられます。

-vb.net

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

no image

継承と実装

用語がどうもごちゃごちゃしていて頭に入ってきにくい。解説する人によって捉え方が違っていたりするのが原因ではあるのだろうけれど。vb.netにおける継承と実装について。 継承 : inherits 実装 …

no image

windowsアプリケーションにグラフを追加してみる

MSChartを使うことを諦めて別のグラフコンポーネントを探していたところ、visual studio 2005に標準でreportviwerというコンポーネントがあることに気づいた。reportとい …

no image

VB.NETのwindowsフォームのサイズをマウスで変更できるようにする

windowsフォームのサイズをマウスカーソルをフォームの境界線にもっていくとサイズ変更ができるようにする。方法は、formプロパティのAutoSizeModeをGrowOnlyに設定する。すると、フ …

no image

文字列中にある一部分だけを置き換える

備忘。正規表現を使ってある条件にマッチする場合、その文字列の一部分を別の文字列に置き換える、ということをやってみる。たとえば次のような文字列があったとする。 “00 abcde&#8221 …

no image

visual studioが不具合を起こした2

————————— Microsoft Visual Studio —&#821 …