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.