<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ADO.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/78/ShowForum.aspx</link><description>Θέματα σχετικά με την προσπέλαση δεδομένων μέσω του ADO.NET και του System.Data namespace</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Λάθος foreign keys των νέων child rows κατά την εισαγωγή από τον Dataset στην βάση</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/24494.aspx</link><pubDate>Mon, 05 Feb 2007 01:01:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:24494</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/24494.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=24494</wfw:commentRss><description>&lt;P&gt;Κατ' αρχήν μην ξαναχρησιμοποιήσεις CommandBuilder (παρά μόνο αφού εξοικειωθείς αρκετά με το ADO.NET και καταλάβεις τι ακριβώς κάνει και τι ΔΕΝ κάνει)! &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt; &lt;BR&gt;Το πρόβλημά σου οφείλεται ακριβώς στη χρήση του CommandBuilder. Όταν δημιουργείς τους TableAdapters μέσω του Wizard, τότε όταν δημιουργεί το κάθε Insert και Update command, στο CommandText property που έχουν, μετά από κάθε&amp;nbsp;INSERT και UPDATE statement κολλάει και ένα SELECT statement που έχει σκοπό να κάνει refresh στα data καθώς πολλές φορές άλλα ξεκινάμε να γράψουμε σε έναν πίνακα και άλλα περιέχει στο τέλος (λόγω identities, defaults, triggers, κλπ). Αν το κάθε Insert command σου είχε αυτό το ζευγάρι INSERT/SELECT τότε θα έπαιρνες πίσω την τιμή του identity που πραγματικά μπήκε στη βάση και κατόπιν δεν θα χρειάζονταν να κάνεις τίποτα το ιδιαίτερο για να κάνεις insert τις detail εγγραφές. Θα περιείχαν ήδη το σωστό identity. Όμως το statement που φτιάχνει ο CommandBuilder ΔΕΝ περιέχει αυτό το SELECT μετά το INSERT ή το UPDATE γιατί δεν προορίζεται γι αυτή τη δουλειά καθώς είναι μια quick'n'dirty λύση. Φτιάξε τους&amp;nbsp;TableAdapters με τον Wizard και διάβασε προσεχτικά τον παραγόμενο κώδικα για να καταλάβεις πως λειτουργεί.&lt;/P&gt;
&lt;P&gt;Επειδή έχουμε ξανακουβεντιάσει αυτό το πρόβλημα, θα σου πρότεινα, αφού δουλέψεις με τον Wizard, να δεις για περισσότερα στα παρακάτω:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms971502.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms971502.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.dotnetzone.gr/cs/forums/16421/ShowPost.aspx"&gt;&lt;FONT color=#02469b&gt;http://www.dotnetzone.gr/cs/forums/16421/ShowPost.aspx&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;(και επειδή είναι μακρύ το thread, δες ειδικότερα: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.dotnetzone.gr/cs/forums/permalink/16421/16525/ShowThread.aspx#16525"&gt;http://www.dotnetzone.gr/cs/forums/permalink/16421/16525/ShowThread.aspx#16525&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.dotnetzone.gr/cs/forums/3427/ShowPost.aspx"&gt;&lt;FONT color=#02469b&gt;http://www.dotnetzone.gr/cs/forums/3427/ShowPost.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.dotnetzone.gr/cs/forums/8901/ShowPost.aspx"&gt;&lt;FONT color=#02469b&gt;http://www.dotnetzone.gr/cs/forums/8901/ShowPost.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Λάθος foreign keys των νέων child rows κατά την εισαγωγή από τον Dataset στην βάση</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/24493.aspx</link><pubDate>Mon, 05 Feb 2007 00:01:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:24493</guid><dc:creator>Azular</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/24493.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=24493</wfw:commentRss><description>Περιγραφή&lt;br&gt;&lt;br&gt;Η εφαρμογή μου φορτώνει και συσχετίζει σε ένα Dataset 2 πίνακες όπου συσχετίζονται μεταξύ τους με μιά σχέση parent-child (ένα προς πολλά)&lt;br&gt;Κατά την διαδικασία εισαγωγής δεδομένων υπάρχει η δυνατότητα εισαγωγής νέων parent και για κάθε parent μπορούν να εισαχθούν νέες child εγγραφές.Στον Dataset, για τις νέες parent εγγραφές το primary key κάνει autonumber ξεκινώντας από το 0 και αυξάνεται κατά 1.Αντίστοιχα οι συσχετισμένες child εγγραφές στο πεδιο foreign key θα παρουν τις τιμές του primary key από τις parent εγγραφές αφού υπάρχει η αντίστοιχη σχέση.&lt;br&gt;&lt;br&gt;Πρόβλημα&lt;br&gt;&lt;br&gt;Κατά την διαδικασία ενημέρωσης από τον Dataset στην βάση όμως έχω το εξής πρόβλημα.&lt;br&gt;Τα primary keys των parent εγγραφών αλλάζουν αρίθμηση στην DB ακολουθώντας την αυξουσα αρίθμηση του αντίστοιχου πεδίου της βάσης.Έτσι λοιπόν η πρώτη νέα εγγραφή στον dataset που είχε primary key =0 κατά την εισαγωγή της στην βαση μπορέι να γίνει π.χ.187.&lt;br&gt;Όμως στις child εγγραφές (που εισάγονται στον αλλον πίνακα) η τιμή του πεδίου foreign key παραμένει η ίδια με τον Dataset δηλαδή 0 στο παράδειγμά μας με αποτέλεσμα είτε να είναι ορφανές αυτές οι εγγραφές είτε να αντιστοιχουν σε λάθος parent εγγραφές.Να αναφέρω επίσης ότι οι δυό πίνακες φορτώνονται από την βάση στο dataset με 2 διαφορετικούς Adapter και η ενημέρωση πίσω στην βάση γίνεται μέσω αυτών αφού έχουν δημιουργηθεί επίσης και δύο CommandBuilder objects για τον καθένα.&lt;br&gt;Πως μπορώ να υπερβώ αυτό το πρόβλημα; Ευχαριστώ&lt;br&gt;</description></item></channel></rss>