プロが教えるわが家の防犯対策術!

タイトルの「オブジェクト参照がオブジェクト インスタンスに設定されていません」についてですが、

このエラーは、

null を参照しようとして例外が発生している

エラーだと解釈しているのですが、nullでないのに、このエラーが出る場合はどのように対処すればいいのか教えてください。

下記のような文があるとします。

Dim aaa as String
'aaaは、データベースからデータをとってきています。

If aaa IsNot DBNull.Value Then
DropDownList.SelectedItem.Text = aaa.TrimEnd 'ここでエラー
End If

aaaは、NullではないのでIf文の中に入っていくのですが、DropDownListにデータを入れようとすると、タイトルのようなエラーが発生します。

デバッグでaaaの値を見ても、ちゃんとデータが入っているし、Nullではないのですが、なぜこのようなエラーが出るのかわかりません。

このエラーは他に違う意味があるのでしょうか?

また、他に影響している部分があるのでしょうか?

どなたか教えてください。

よろしくお願いいたします。

A 回答 (6件)

SelectedIndexは何番目の行かということを示すので、数値でなければ


なりません。Items(i).Text=aaaになるiを見つけて設定します。
FindByTextかFindByValueで検索したListItemを使って、IndexOfで
インデックスを求める方法がスマートでしょうか。

http://msdn.microsoft.com/ja-jp/library/system.w …
http://msdn.microsoft.com/ja-jp/library/system.w …
http://msdn.microsoft.com/ja-jp/library/system.w …

>表示するデータと値のデータを別々に設定
Text(表示するデータ)とValue(値のデータ)を仕込んだListItemを
Add(場合によってはInsert)メソッドで追加(挿入)します

http://msdn.microsoft.com/ja-jp/library/system.w …
http://msdn.microsoft.com/ja-jp/library/system.w …
http://msdn.microsoft.com/ja-jp/library/system.w …
    • good
    • 0
この回答へのお礼

nda23さん

ご丁寧に何度もありがとうございました!

なんとかできそうです!

またわからなくなったら投稿させて頂きます!!

そのときはぜひよろしくお願い致します。

ありがとうございました♪

お礼日時:2008/11/21 16:37

既に中身が仕込まれているDropDownListに対し、値を使って


該当する行を選択させる場合はSelectedValueじゃないですか?
あるいはSelectedIndexでは?

http://msdn.microsoft.com/ja-jp/library/system.w …
http://msdn.microsoft.com/ja-jp/library/system.w …

この回答への補足

すみません、書き忘れました。

SelectedIndexもSelectedValueもリストで選択された項目の・・・とありますが、最初から選択された状態ではなく、カレンダーで選択した日付からデーターベースを検索し、その日付にあったデータをDropDownListに表示すると言うことをしたいのです。

また、同じDropDownListで、あらかじめデータベースと結合していて、データを埋め込んであり、カレンダーから日付を選択しなくても、データベースと結合したデータの選択もできるようにしたいです。

補足日時:2008/11/21 14:30
    • good
    • 0
この回答へのお礼

nda23さん

ありがとうございます。

SelectedValueは通ったのですが、SelectedIndexにしますと、integerしかダメと言われて、止まってしまいました。

DropDownListは、表示するデータと値のデータを別々に設定しないといけないんですよね?

表示するデータと値のデータともテキスト型のデータを入れたいのですが、この場合はどうやってやればいいのでしょうか?

よろしくお願いいたします。

お礼日時:2008/11/21 14:27

No3です。



× drop1.Add("aaa");
○ drop1.Items.Add("aaa");

です。すいません。
ちなみに、開発環境がVisualStudioであれば、
「SelectedItem」や「Item」のところでF1キーを押すとヘルプが見れます。
参照してみてください。
    • good
    • 1
この回答へのお礼

Pakkun10さん

ありがとうございます。


DropDownListはあらかじめ、データベースと結びつけて、データを埋め込んでいます。

最初にページを表示したときに、カレンダーで日付を選択して、ボタンを押したら、その選択した日付に基づいて、データベースからの値をDropDownListで選択した状態にすると言うことをしたいのです。

提示しましたプログラムはその途中部分です。

ですので、DropDownListに追加という形ではなく、選択した状態にしたいのです。

何か他にお気づきでしたら教えてください。

よろしくお願いいたします。

お礼日時:2008/11/21 13:20

ドロップダウンリストにデータを追加するには


(名前がdrop1になってるとすると)

drop1.Add("aaa");

ではないでしょうか?
SelectedItemは閲覧専用のプロパティですので、設定は出来ません。
それと、
DropDownList.SelectedItem.Text ・・・
と書いてありますが、「DropDownList」は画面に表示してる
DropDownListを指してますか?
上の例のように、「drop1」という名前のDropDownListに追加することは出来ますが、
DropDownListそのものに追加することはできません。
    • good
    • 0

例えば、型Aの変数X,Y,Zを考えましょう。

これらの変数は型が
同じなので、メンバ変数やメソッドは共通です。しかし、独立した
変数なので、内部で保持している各種の値はそれぞれ別です。
こういった場合、変数それぞれの実体をインスタンスと言います。
変数を定義しただけでは実体がないので、画面のフィールドと結び
付けたり、新しい実体を生成して使います。これがインスタンス化
と呼ばれる操作です。
staticとは静的に固定されたもので、インスタンス化しなくても
最初からプログラム内に実在します。例えば、文字列定数などが
それにあたります。その代わり、全体で1個しか実体がないので、
どのスレッドから参照しても同じ物を扱うため、勝手に変更すると
他のスレッドの動作がおかしくなったりします。

変数aaaは「データベースからデータをとってきています」なので、
その操作によりインスタンス化された(あるいは他のインスタンス
からコピーされた)のですが、DropDownListの方はどうなっている
いるのでしょう?こっちがエラーになっている気がします。

インスタンス依存のメソッドは勿論、インスタンス化されていないと
実行できないため、変数を操作する場合は自身のインスタンスに
関連付けられているので、掲題のような問題は起き難いのですが、
staticなメソッドはインスタンス化しなくても実行できるので、
(何でできるかは分かりますよね)インスタンス化されていない
オブジェクトを参照する危険があります。
    • good
    • 0
この回答へのお礼

nda23さん

ありがとうございます。

DropDownListはあらかじめ、データベースと結びつけて、データを埋め込んでいます。

最初にページを表示したときに、カレンダーで日付を選択して、ボタンを押したら、その選択した日付に基づいて、データベースからの値をDropDownListで選択した状態にすると言うことをしたいのです。

提示しましたプログラムはその途中部分です。

DropDownListの設定の仕方?が悪いのでしょうか?

お気づきの点がありましたら教えてください。

よろしくお願いいたします。

お礼日時:2008/11/21 13:17

staticなメソッドからstaticでないメソッドを呼び出したり、


staticでない変数を参照したりしているのでは?
aaaは自動変数なので、インスタンスもstaticも関係ない変数ですが、
DropDownListの方はどうなっていますか?
    • good
    • 0
この回答へのお礼

nda23さん

ありがとうございます。

すみません、プログラム初心者なもので、教えて頂いたことがよく理解できません。。。

もう少し詳細に教えていただけますと助かります。
お手数ですがよろしくお願い致します。

お礼日時:2008/11/21 11:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A