Meerdere tabelen selecteren

Status
Niet open voor verdere reacties.

savant11

Gebruiker
Lid geworden
7 jan 2008
Berichten
153
Hoi allemaal,

de bedoeling is een select te maken van 3 tabellen:

- kast
- plank
- boek

De bedoeling is dat je kan zien welk boek op welke plank staat en welke plank waar dat boek op staat in welk kast zit.

Ik heb de selct van kast, plank en de select van plank,boek.

Maar hoe moet je nu deze samenvoegen?

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;
//using System.Data.OleDB; 

namespace CustomDataReaders
{
    class Program
    {
        Random RAND = new Random();
        static void Main(string[] args)       
        {

           
            //Create a connection
    OleDbConnection m_cnADONewConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\meetSysteem.mdb");
    //open the connection
    m_cnADONewConnection.Open();
    //Create a command object.
    OleDbCommand myCommand = m_cnADONewConnection.CreateCommand();
    //Specify a query
    
    myCommand.CommandText = "SELECT * FROM plank LEFT JOIN boek ON(plank.plank_id = boek.boek_id) ";
    myCommand.CommandText = "SELECT * FROM kast LEFT JOIN plank ON(kast.kast_id = plank.plank_id) ";
  myCommand.CommandText = "SELECT * FROM kast LEFT JOIN boek ON(kast.kast_id = boek.boek_id) ";
            
            // myCommand.CommandText = "Select TOP 1  plank_nr FROM  plank WHERE rnd(plank_nr)";// ORDER BY kast_nr()" ;
    //Create a DataReader for the command
    OleDbDataReader myDataReader = myCommand.ExecuteReader();


    //Display the resulting Data
    while (myDataReader.Read())
   {
       Random ran = new Random();

       Console.WriteLine(" kast nr:{0}   ", myDataReader["kast_nr"]);
       Console.WriteLine(" plank nr:{0}   ", myDataReader["plank_nr"]);
       Console.WriteLine(" boek nr:{0}   ", myDataReader["boek_nr"]); 
   }

 
    //Close the DataReader.
    myDataReader.Close();
    //Close the connection
    m_cnADONewConnection.Close();

 
    //Keep the console open until a keystroke.
    Console.ReadKey(true);

           



        }

       
    }
}

Maar als ik op F5 druk dan geeft ie bij deze regel:

Code:
Console.WriteLine(" plank nr:{0}   ", myDataReader["plank_nr"]);

een exception: plank_nr.

Iemand tips?



Alvast bedankt.
 
Laatst bewerkt:
hoi,

kan je eens meer informatie geven over de exception? is het een sql exception? als je plank_nr in 2 tabellen heb staan, gaat hij 2 kolommen hebben met dezelfde naam, en dat vindt hij niet zo leuk. Of heb je wel een tabel plank_nr er in zitten? want ik zie ook plank_id staan

Ik gebruik sql al een tijdje niet meer eigenlijk. als je zo een dingen wilt kan je best eens naar NHibernate of Entity framework kijken. dat zijn tools die je tabel rechtstreeks omzet naar een object, dus bijvoorbeeld een boekenkast object met daarin een collectie van boeken.

NHibernate is een dikke aanrader.

Misschien ben je daar nu onmiddellijk niet ver mee geholpen, maar ik wou het toch even kwijt :) Als je een dagelijkse programmeur bent ga je jezelf ENORM veel tijd besparen met deze dingen.
 
Laatst bewerkt:
Hoi Santo2.

alvast bedankt voor de tip.

Heb jij veel ervaring met C#?

Heb jij wellicht ook nog wat tips voor RowFilter.

Alvast bedankt.
 
ja ik heb behoorlijk wat ervaring. Ik heb hier ook nog net een vraag gepost maar ik vrees dat niemand die hier op zit mij gaat kunnen antwoorden :)
Ik moet wel zeggen, ik werk nooit met DataTables. Ik werk altijd met collections van objecten die gelijkaardig zijn aan de database. DataTables is tamelijk pre historie in bedrijven.
Edit: in ons bedrijf
 
Laatst bewerkt:
dan zal je mij even pm moeten sturen met je email, want jij hebt blijkbaar geen pm aanstaan voor gewone gebruikers.
 
Hoi Santos

heb je me bericht ontvangen?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan