Decimal型の値をコンボボックスに入れるとエラーが・・・


@関西  2004-10-08 20:07:48  No: 116843

どうも今日は。

グリッドから引っ張ってきた値をコンボボックスに入れようとしているのですが、

Me.ddlTantosya.SelectedValue = Me.flxList.Rows(p_intRow).Item("STAFF")

右辺はDecimal型の値になっているようなのですが、それが"1D"の時だけエラーが出るんです。
"666D"や"7000D"になる場合は大丈夫なんですが。
しかもエラーの内容が“指定された引数は、有効な値の範囲内にありません。パラメータ名:'-2147483648'は'index'に有効な値ではありません。”とあるのですが、
どうしてこんな数値が出てくるのかが分かりません。
どういった原因が考えられるでしょうか。
WindowsXP,VB.NET 2003


特攻隊長まるるう  2004-10-08 22:20:04  No: 116844

使ってるオブジェクトが何か?デフォルトの名前を
使わない場合は説明なり、変数宣言なりしておいて
欲しいんですけど?

型は関係ないでしょう。エラーメッセージが違います。
引数が悪いって言われてるんだから引数見なきゃ?
p_intRow が悪い。
'-2147483648'は16進で'FFFFFFFF80000000'
Integer の範囲外までループでカウントしたんじゃない?


ファリンファリン  2004-10-08 22:53:54  No: 116845

>“指定された引数は、有効な値の範囲内にありません。パラメータ名:'-2147483648'は'index'に有効な値ではありません。”
そのままのエラーかと思います。
<MSDNより引用>
整数型 (Integer) の変数は、32 ビット (4 バイト) の符号付き整数として格納され、-2,147,483,648 〜 2,147,483,647 の範囲の値をとります。

>p_intRow
は多分Integerですよね?(このことは下で触れます)
ただ単にIntegerで正の数とし表せない範囲の数値がp_intRowに設定されて、
それをIndexとしてるflxList.Rows()がエラーを発生させてるのかと。

蛇足ですが
>グリッド
Webコントロールですか?でも
>コンボボックス
って仰ってるのだから多分Winコントロールなんですよね?
>flxList
何のコントロールですか?ここに登場してこないリストボックスですか?
外売りだと思われるフレックスグリッドですか?

プレフィックスを付けているからと言ってそれは万国共通ではありません。
せめてコントロールや変数は何なのかと明記して頂かないと
調べるのに時間が掛かります。(又は調べられません。)
宣言部分でも記載してもらえれば結構です。
例えば、Dim intTemp As Integer  とか・・・
コントロールも
System.Windows.Forms.TextBoxなのか
System.Web.UI.WebControls.TextBoxなのかで全然違います。


ファリンファリン  2004-10-08 22:55:06  No: 116846

すみません。かぶりましたm(_)m


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加