-1

新しい質問で申し訳ありませんが、問題があります。データバインディングを使用してコンボボックスアイテムを追加したいのですが、NullException(「オブジェクト参照がオブジェクトのインスタンスに設定されていません。」)が表示されますが、テーブルにデータがあります。これは私のコードです:

BesenicaDataSet ds = new BesenicaDataSet();
ds.ReadXml("BesenicaDS.xml");
comboBox1.DataSource = ds.Tables["Kategorii"].DefaultView;
comboBox1.DisplayMember = "Kategoriq";

アップデート:

今、これで修正しましたが、例外を取得できません

comboBox1 = new ComboBox(); 
comboBox1.DataSource = ds.Tables["Kategorii"].DefaultView; 
comboBox1.DisplayMember = "Kategoriq"; //second column in table 
comboBox1.ValueMember = "KategoriqID"; //Primary Key column 

しかし、今はComboBox1.Items.Count == 0ですが、このテーブルにアイテムがあります。なぜそしてどのようにそれを修正するのですか?

4

4 に答える 4

0

あなたが提供したもので見分けるのは難しい。ブレークポイントを設定し、DataSetにデータが含まれているかどうかを確認します。もしそうなら、DisplayMemberは正しく綴られていますか、それともテーブルですか?私はそれらが非常に似ていることに気づきましたが、手紙によって離れています。そのテーブルが存在するかどうかを確認します([ウォッチ]または[ホバー]に設定します)。より多くの情報が役立ちます。

于 2012-05-25T16:02:52.737 に答える
0

なんらかの理由で、DataSetに「Kategorii」というテーブルがないため、にアクセスしようとするとnull参照例外が発生することになりますDefaultView。xmlを確認し、デバッグ条件下で、実際にDataSetにあるテーブルを確認します。

この例外のスタックトレースと、場合によってはxmlファイルの見本を提供していただければ助かります。

もう1つの推測は、comboBox1それ自体がnullであるということですか?

ボーナスポイントコンボボックスを意図的に設定していないか、このサンプルコードから単に省略している
ことを確認したかっただけです。ValueMember

于 2012-05-25T16:03:13.067 に答える
0

与えられた小さなコードから、ファイルxmlが存在し、有効であると仮定すると、考えられる唯一の原因は次のとおりです。

comboBox1.DataSource = ds.Tables["Kategorii"].DefaultView; 

データセットに「Kategorii」という名前のテーブルがないことを意味します

これで試してください

DataTable dt = ds.Tables["Kategorii"];
if(dt == null)
    throw new Exception("There is no datatable Kategorii");
else
    comboBox1.DataSource = dt;
于 2012-05-25T16:03:19.100 に答える
0

次の行が欠落しているようです。

comboBox1.DataBind();
于 2012-05-29T10:32:30.897 に答える