Waar een beetje rust en

Waar een beetje rust en een klaar hoofd allemaal niet goed voor zijn: die DataSet-historie met meer tabellen, ‘t is eigenlijk toch niet zo ingewikkeld.

OleDbDataAdapter da;
DataSet dsBook=
new DataSet(“Book”);

da=
new OleDbDataAdapter(“select * from tblBooks where book_id=”+ID.ToString(),cnnBooks);
da.Fill(dsBook,”tblBooks”);
da=
new
OleDbDataAdapter(“select * from tblPublishers”,cnnBooks);
da.Fill(dsBook,”tblPublishers”);
richTextBox2.Text=””;
foreach (DataTable dt in
dsBook.Tables)
{
   richTextBox2.Text+=”table: “+dt.TableName+”\n”;
   foreach (DataColumn dc in
dt.Columns) 
   {
      richTextBox2.Text+=”\tcolumn: “+dc.ColumnName+”\n”;
   }
}

En dat geeft een proper lijste van tabellen en velden:

table: tblBooks
    column: book_ID
    column: book_title
    column: book_genre_id
    column: book_pages
    column: book_cover_ID
    column: book_year
    column: book_publisher_ID
    column: book_price
[…]
table: tblPublishers
    column: publisher_id
    column: publisher_name

En dan is ‘t nog een kwestie van daar een relatie aan toe te voegen:

dsBook.Relations.Add(“BookPublisher”,
    dsBook.Tables[“tblBooks”].Columns[“book_publisher_ID”],
    dsBook.Tables[“tblPublishers”].Columns[“publisher_id”],
    false);

En dat geeft proper schoon het volgende schema:

<?xml version=”1.0″ encoding=”utf-16″?>
<xs:schema id=”Book” xmlns=”” xmlns:xs=”http://www.w3.org/2001/XMLSchema” xmlns:msdata=”urn:schemas-microsoft-com:xml-msdata”>
   <xs:element name=”Book” msdata:IsDataSet=”true” msdata:Locale=”nl-BE”>
      <xs:complexType>
         <xs:choice maxOccurs=”unbounded”>
            <xs:element name=”tblBooks”>
               <xs:complexType>
                  <xs:sequence>
                     <xs:element name=”book_ID” type=”xs:int” minOccurs=”0″ />
                     <xs:element name=”book_title” type=”xs:string” minOccurs=”0″ />
                     <xs:element name=”book_genre_id” type=”xs:int” minOccurs=”0″ />
                     <xs:element name=”book_pages” type=”xs:int” minOccurs=”0″ />
                     <xs:element name=”book_cover_ID” type=”xs:int” minOccurs=”0″ />
                     <xs:element name=”book_year” type=”xs:int” minOccurs=”0″ />
                     <xs:element name=”book_publisher_ID” type=”xs:int” minOccurs=”0″ />
                     <xs:element name=”book_price” type=”xs:double” minOccurs=”0″ />
                     […]
                  </xs:sequence>
               </xs:complexType>
            </xs:element>
            <xs:element name=”tblPublishers”>
               <xs:complexType>
                  <xs:sequence>
                     <xs:element name=”publisher_id” type=”xs:int” minOccurs=”0″ />
                     <xs:element name=”publisher_name” type=”xs:string” minOccurs=”0″ />
                  </xs:sequence>
               </xs:complexType>
            </xs:element>
         </xs:choice>
      </xs:complexType>
   </xs:element>
   <xs:annotation>
      <xs:appinfo>
         <msdata:Relationship name=”BookPublisher” msdata:parent=”tblBooks” 
               msdata:child=”tblPublishers” msdata:parentkey=”book_publisher_ID”
               msdata:childkey=”publisher_id” />
      </xs:appinfo>
   </xs:annotation>
</xs:schema>

Wijs! Enfin, nu zijn de kinderen terug van het zwembad. Na het eten ga ik nog eens verder kijken om die zooi in controls te krijgen en te wijzigen.

Zeg uw gedacht

Vriendjes

<insert standard disclaimer>

Alles wat hier staat is mijn eigen opinie. Het wordt niet nagelezen of goedgekeurd door mijn werkgever voor het on-line komt, en ik bied geen enkele garantie voor kwaliteit of correctheid.

Mijn werkgever is het niet noodzakelijk eens met wat ik schrijf, en het spreekt vanzelf dat hij dan ook op geen enkele wijze aansprakelijk kan zijn voor wat ik hier publiceer.