2012-05-07 4 views
1

あなたは私のことを笑っているかもしれません。しかしそれは大丈夫です。私はこの簡単な質問に数日間苦労しました。基本的に私はWindowsフォームでdatagridviewを介してテーブルを表示したい。テーブルはストアドプロシージャから取得します。オブジェクト参照は、データ型をバインドするときにwinformのオブジェクトのインスタンスに設定されていません

BindingSource bsource = new BindingSource(); 
    DataSet ds = new DataSet(); 
    private SqlDataAdapter da; 
    DataTable table1 = some subroutine 

テーブルが存在します。 snapshot

次に、以下のコードを実行した後、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という例外が発生しました。

ds.Tables.Add(table1); 
      da.Fill(table1); // here catch an error. 
      bsource.DataSource = table1; 
      datagridview1.DataSource = table1; 
+0

を初期化していません? –

+0

DataAdapterの新しいインスタンスを作成しましたか?エラーを再現するすべてのコードを貼り付けてください。 – ivowiblo

答えて

0

あなたは、この間、どこかdaを初期化している場合を除き:

private SqlDataAdapter da; 

と、この:それは何を指していないので、

da.Fill(table1); 

あなたはもちろん、NPEを取得します。私はあなたが意味を考える:

private SqlDataAdapter da = new SqlDataAdapter(); 
+0

コンパイル時にエラーが発生します。割り当てられていない変数 – Habib

+0

の使用@ Habib.OSU:クラスメンバーのデフォルトはnullです。この場合、エラーを通知しません。 'da'がメソッドローカル変数だった場合、それはコンパイルされません。 – Tudor

0

あなたのサブルーチンが返す何SqlDataAdapter

private SqlDataAdapter da = // Initialize adapter here. 
関連する問題