Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Πως χρησιμοποιούμε τα Datasets που κάνουμε add σε ένα Solution (.xsd);

Îåêßíçóå áðü ôï ìÝëïò DeClen. Τελευταία δημοσίευση από το μέλος KelMan στις 17-01-2007, 14:43. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  12-01-2007, 16:16 23415

    Πως χρησιμοποιούμε τα Datasets που κάνουμε add σε ένα Solution (.xsd);

    Επανήλθα με νέες απορίες... :-)

    Νομίζω ότι έχω καταλάβει κάποια βασικά πράγματα για το τι είναι και πως λειτουργεί ένα DataSet. Η αλήθεια είναι βέβαια πως δυσκολεύτηκα κάπως γιατί το μυαλό μου ήταν κολλημένο στην VB6 και τα Recordsets... Τελοσπάντων αντιμετωπίζω το εξής προβληματάκι.

    Φτιάχνω ένα web application και χρησιμοποιώ GridViews και Datasets. Έχω καταφέρει να κάνω bind το GridView με κάποια δεδομένα είτε "φτιάχνοντας" το datasource με τον wizard  του VS είτε δημιουργώντας ένα DataSet εξολοκλήρου με κώδικα. Ως εδώ καλά. Παρόλο που είχα πετύχει το ζητούμενο δοκίμασα το εξής:

    Έκανα "Add..." ένα DataSet στο solution μου ως καινούργιο αντικείμενο. Το Dataset το ονόμασα "myDataSet.xsd". Μέσα σε αυτό έβαλα και 3 Table Adapters που έβλεπαν 3 πίνακες από έναν SQL Server. Στη συνέχεια προσπάθησα να εμφανίσω τα στοιχεία ενός πίνακα από το DataSet στο GridView. Το πρόβλημα είναι ότι στην εντολή

    GridView1.DataSource = myDataSet

    η εφαρμογή δεν καταλάβαινε τίποτα (μου πέταγε error ότι το αντικείμενο myDataSet δεν είναι declared). Από ότι καταλαβαίνω η εφαρμογή δεν έχει ιδέα τι είναι αυτό το "myDataSet"...

    Με πιο τρόπο μπορώ να κάνω bind το DataSet με το GridView (ή ίσως πιο γενικά με πιο τρόπο η εφαρμογή θα "δει" αυτό το dataset)?

    Ευχαριστώ.
  •  12-01-2007, 16:32 23417 σε απάντηση της 23415

    Απ: Πως χρησιμοποιούμε τα Datasets που κάνουμε add σε ένα Solution (.xsd);

    Φαντάσου ότι αυτό το DataSet που έχεις φτιάξει είναι μία κλάση. Πρέπει πρώτα να φτιάξεις ένα instance της κλάσης αυτής. Πχ

    Private dsX as myDataSet = New DataSet

    Kατόπιν μπορείς να πεις

    GridView1.DataSource = dsX

    Μάλλον πίστεψες ότι το DataSet που πρόσθεσες στο solution είναι και instance.
    Vir prudens non contra ventum mingit
  •  12-01-2007, 16:50 23420 σε απάντηση της 23417

    Απ: Πως χρησιμοποιούμε τα Datasets που κάνουμε add σε ένα Solution (.xsd);

    Έχεις δίκιο,

    Δοκίμασα αυτό που μου είπες. Έβαλα στο declaration section του κώδικα την δήλωση

    Private myds As myDataSet = New DataSet

    και μου επέστρεψε το παρακάτω λάθος

    Unable to cast object of type 'System.Data.DataSet' to type 'Τest2005.myDataSet1'. (το Test2005 είναι το όνομα του project).

    Τι βλακεία έκανα?
  •  12-01-2007, 17:46 23424 σε απάντηση της 23417

    Απ: Πως χρησιμοποιούμε τα Datasets που κάνουμε add σε ένα Solution (.xsd);

    Δικό μου το λάθος!

    Private dsX as myDataSet = New myDataSet

    όχι

    Private dsX as myDataSet = New DataSet


    Vir prudens non contra ventum mingit
  •  17-01-2007, 14:21 23667 σε απάντηση της 23424

    Απ: Πως χρησιμοποιούμε τα Datasets που κάνουμε add σε ένα Solution (.xsd);

    ...αν και άργησα λίγο σε ευχαριστώ πολύ για την απάντηση. Με βοήθησε πολύ να καταλάβω την έννοια των instances! Smile

    Δουλεύοντας πάνω στα Data Sets μου δημιουργήθηκαν και κάποιες άλλες ψιλοαπορίες (...δεν πρόκειται να τις αναφέρω όλες, ιδιαίτερα αν δεν το ψάξω αρκετά το ζήτημα...). Μια από αυτές είναι η παρακάτω...

    Έστω ότι το instance του DataSet που χρησιμοποιούμε είναι το dsX (για να υπάρχει μια συνέχεια στο thread).
    Έστω ότι έχουμε και το instance ενός BindingSource αντικειμένου με όνομα myBind
    Τέλος έχουμε και το instance ενός TableAdapter που βλέπει σε ένα πίνακα (πχ Companies) από το DataSet με όνομα myCompanies

    Για να ορίσω το .DataSource του BindingSource αντικειμένου χρησιμοποιώ το εξής
    myBind.DataSource  = myCompanies.GetData()

    Στο κώδικα που παράγει αυτομάτως η VB NET παρατήρησα ότι για να γίνει το ίδιο πράγμα παράγεται ο κώδικας
    myBind.DataMember = "Companies"
    myBind.DataSource  = dsX


    Από ότι καταλαβαίνω η 1η μέθοδος χρησιμοποιεί το TableAdapter, ενώ η άλλη το DataTable.

    Ποιά ακριβώς είναι η λειτουργική διαφορά; Ποιός είναι ο σωστότερος τρόπος υλοποίησης; Confused


  •  17-01-2007, 14:43 23671 σε απάντηση της 23667

    Απ: Πως χρησιμοποιούμε τα Datasets που κάνουμε add σε ένα Solution (.xsd);

    Με τον πρώτο τρόπο ορίζεις έμμεσα ως DataSource ένα DataTable καθώς δεν έχεις reference σε αυτό (είναι αυτό που επιστρέφει η GetData). Με το δεύτερο τρόπο, έχεις ήδη reference στο DataTable (εφόσον έχεις reference στο DataSet) οπότε χρησιμοποιείς τον συνδυασμό DataSource/DataMember. Πάντως δεν μπορώ να σκεφτώ κάποια πρακτική διαφορά...


    Vir prudens non contra ventum mingit
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems