2012-02-21 25 views
0

私は3つのテーブルのコース、テキストとbook_adoptionを持っています。私は、私は以下のコード - 私はラインでエラーを取得していますCを使用してデータを照会することができません

connect(); 
      string qstr = "select course_id, book_isbn, book_title from texts natural join Book_Adoption natural join course where exists(select count(book_isbn) from Book_Adoption natural join course group by dept having count(course_id)>1) order by book_title"; 
      da = new OleDbDataAdapter(qstr, con); 
      ds = new DataSet(); 
      da.Fill(ds, "course"); 
      //da.Fill(ds, "Texts"); 
      //da.Fill(ds, "Book_Adoption"); 
      dt = ds.Tables[0]; 
      for (int i = 0; i < dt.Rows.Count; i++) 
      { 
       listBox1.Items.Add(dt.Rows[i]["course_id"].ToString()); 
       listBox1.Items.Add(dt.Rows[i]["book_isbn"].ToString()); 
       listBox1.Items.Add(dt.Rows[i]["book_title"].ToString()); 
      } 

da.Fill(ds, "texts");私は自然がジョインを使用して簡単なクエリを致しておりません 、私は取得しています正しい出力を実行していますエラーを取得しています。何がコードに間違っていますか?

+0

実際のエラーの詳細を含めてください。 – Nanhydrin

+0

OleDbExceptionが処理されていません IErrorInfo.GetDescriptionがE_FAIL(0x80004005)で失敗しました。 –

+0

dtがDataTableの場合はda.Fill(dt)を使用できませんでした。 ? –

答えて

1

私はそれはあなたがカウントされませ列を選択しているし、それが列名を知らないので、これは問題を引き起こしている可能性のSQLクエリ

(select count(book_isbn) from Book_Adoption 

のこのビットかもしれないと思います。
同様のシナリオではhereを参照してください。

+0

Nanhydrinの答えに続きます。 Accessでこのクエリーを実行することはできますか?」を選択してください。「コース選択」をクリックすると、Natural_JOIN_JOINNINGが選択されます。 order by book_title " –

関連する問題