タイトルの「オブジェクト参照がオブジェクト インスタンスに設定されていません」についてですが、
このエラーは、
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ではないのですが、なぜこのようなエラーが出るのかわかりません。
このエラーは他に違う意味があるのでしょうか?
また、他に影響している部分があるのでしょうか?
どなたか教えてください。
よろしくお願いいたします。
No.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 …
nda23さん
ご丁寧に何度もありがとうございました!
なんとかできそうです!
またわからなくなったら投稿させて頂きます!!
そのときはぜひよろしくお願い致します。
ありがとうございました♪
No.5
- 回答日時:
既に中身が仕込まれている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で、あらかじめデータベースと結合していて、データを埋め込んであり、カレンダーから日付を選択しなくても、データベースと結合したデータの選択もできるようにしたいです。
nda23さん
ありがとうございます。
SelectedValueは通ったのですが、SelectedIndexにしますと、integerしかダメと言われて、止まってしまいました。
DropDownListは、表示するデータと値のデータを別々に設定しないといけないんですよね?
表示するデータと値のデータともテキスト型のデータを入れたいのですが、この場合はどうやってやればいいのでしょうか?
よろしくお願いいたします。
No.4
- 回答日時:
No3です。
× drop1.Add("aaa");
○ drop1.Items.Add("aaa");
です。すいません。
ちなみに、開発環境がVisualStudioであれば、
「SelectedItem」や「Item」のところでF1キーを押すとヘルプが見れます。
参照してみてください。
Pakkun10さん
ありがとうございます。
DropDownListはあらかじめ、データベースと結びつけて、データを埋め込んでいます。
最初にページを表示したときに、カレンダーで日付を選択して、ボタンを押したら、その選択した日付に基づいて、データベースからの値をDropDownListで選択した状態にすると言うことをしたいのです。
提示しましたプログラムはその途中部分です。
ですので、DropDownListに追加という形ではなく、選択した状態にしたいのです。
何か他にお気づきでしたら教えてください。
よろしくお願いいたします。
No.3
- 回答日時:
ドロップダウンリストにデータを追加するには
(名前がdrop1になってるとすると)
drop1.Add("aaa");
ではないでしょうか?
SelectedItemは閲覧専用のプロパティですので、設定は出来ません。
それと、
DropDownList.SelectedItem.Text ・・・
と書いてありますが、「DropDownList」は画面に表示してる
DropDownListを指してますか?
上の例のように、「drop1」という名前のDropDownListに追加することは出来ますが、
DropDownListそのものに追加することはできません。
No.2
- 回答日時:
例えば、型Aの変数X,Y,Zを考えましょう。
これらの変数は型が同じなので、メンバ変数やメソッドは共通です。しかし、独立した
変数なので、内部で保持している各種の値はそれぞれ別です。
こういった場合、変数それぞれの実体をインスタンスと言います。
変数を定義しただけでは実体がないので、画面のフィールドと結び
付けたり、新しい実体を生成して使います。これがインスタンス化
と呼ばれる操作です。
staticとは静的に固定されたもので、インスタンス化しなくても
最初からプログラム内に実在します。例えば、文字列定数などが
それにあたります。その代わり、全体で1個しか実体がないので、
どのスレッドから参照しても同じ物を扱うため、勝手に変更すると
他のスレッドの動作がおかしくなったりします。
変数aaaは「データベースからデータをとってきています」なので、
その操作によりインスタンス化された(あるいは他のインスタンス
からコピーされた)のですが、DropDownListの方はどうなっている
いるのでしょう?こっちがエラーになっている気がします。
インスタンス依存のメソッドは勿論、インスタンス化されていないと
実行できないため、変数を操作する場合は自身のインスタンスに
関連付けられているので、掲題のような問題は起き難いのですが、
staticなメソッドはインスタンス化しなくても実行できるので、
(何でできるかは分かりますよね)インスタンス化されていない
オブジェクトを参照する危険があります。
nda23さん
ありがとうございます。
DropDownListはあらかじめ、データベースと結びつけて、データを埋め込んでいます。
最初にページを表示したときに、カレンダーで日付を選択して、ボタンを押したら、その選択した日付に基づいて、データベースからの値をDropDownListで選択した状態にすると言うことをしたいのです。
提示しましたプログラムはその途中部分です。
DropDownListの設定の仕方?が悪いのでしょうか?
お気づきの点がありましたら教えてください。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- Visual Basic(VBA) エクセルのマクロとシートの保護について教えてください。 1 2022/10/18 08:36
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Visual Basic(VBA) 配列にしたセル範囲でのコメントがあるかどうかを取得するコードの書き方 2 2022/09/17 05:09
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Visual Basic(VBA) エラーコード1004 6 2022/06/09 14:12
- Excel(エクセル) R列の1111/11/11以外、且つQ列の×の条件で該当行のAからAE列までオレンジに塗りつぶす 2 2022/07/02 10:18
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
VBのReturnの使い方
Visual Basic(VBA)
-
変数の参照でエラーが出てしまいます。(VB.NET)
Visual Basic(VBA)
-
-
4
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
5
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
6
DateTimePickerに値を入れたいのですが…
Visual Basic(VBA)
-
7
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
8
datetime型でNULL値を入れたい。
SQL Server
-
9
IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト
Windows 10
-
10
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
11
クリスタルレポートの改ページについて
Visual Basic(VBA)
-
12
VB.NETでMessageBoxを表示したいのですが
その他(プログラミング・Web制作)
-
13
return trueとreturn falseの用途・違いは・・・?
JavaScript
-
14
C#にて別クラスの関数を使いたい
C言語・C++・C#
-
15
配列を使わずに、変数名を動的にループで回したい
C言語・C++・C#
-
16
値を返さないコード パス
Visual Basic(VBA)
-
17
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
18
asp.NET初心者です。「 ’Context’は’○○○’のメンバで
Microsoft ASP
-
19
【VB.NET】Excelの最終行までの取得方法
Microsoft ASP
-
20
配列の重複する値とその個数を取得したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数名の付け方
-
複数の変数を宣言する時、同時...
-
VB.NET getとsetの概念がわかり...
-
private static という変数の修飾
-
インスタンス参照でアクセスで...
-
生成したインスタンスを削除す...
-
C# インスタンスの破棄
-
フォームの存在をチェックする方法
-
文字列を日付に変換でParseExce...
-
他のファイルの変数参照
-
C#の構造体の開放のしかた
-
VB6.0で、DLLを動的に参照したい
-
c++の課題で クラスのオブジェ...
-
エクセル(複数インスタンス)...
-
C#「オブジェクト参照が必要で...
-
C#において、同じインスタンス...
-
vb.netでFAXを送信する方法
-
Delphiでインスタンスが作成さ...
-
String a = "a"; と String b =...
-
SerialPort処理でInvokeメソッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
インスタンス参照でアクセスで...
-
private static という変数の修飾
-
VB.NET getとsetの概念がわかり...
-
C# インスタンスの破棄
-
複数の変数を宣言する時、同時...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
SQLを連続発行する時の正しい(?...
-
文字列を日付に変換でParseExce...
-
変数の参照でエラーが出てしま...
-
エクセル(複数インスタンス)...
-
フォームの存在をチェックする方法
-
VB6.0で、DLLを動的に参照したい
-
String a = "a"; と String b =...
-
C#「オブジェクト参照が必要で...
-
newしないインスタンス?実体化...
-
「インスタンス」の意味をわか...
-
SetWindowsHookExで質問
-
フィールドでのnewとコンストラ...
おすすめ情報