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

 

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

Λήψη δεδομένων απο DataTable

Îåêßíçóå áðü ôï ìÝëïò xabikos. Τελευταία δημοσίευση από το μέλος xxxgroove στις 04-05-2007, 16:25. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  22-04-2007, 17:50 30708

    Λήψη δεδομένων απο DataTable

    Γειά σας.
    Το πρόβλημα που αντιμετωπίζω είναι στα πλαίσια της πτυχιακής μου εργασίας. Αρχικά να πω ότι δουλεύω σε Visuall C++ .NET στην οποία και δεν έχω και πολλές γνώσεις.
    Σε μία φόρμα που δημιουργώ, περιέχεται ένα datagrid στο οποίο ο χρήστης θα πρέπει να συμπληρώσει κάποιους αριθμούς. Αυτού που δεν μπορώ να καταλάβω είναι πως στη συνέχεια θα μπορέσω να πάρω αυτά τα δεδομένα απο τον πίνακα.
    Για να εξηγήσω καλύτερα αρχικά δημιουργώ το datagrid, στη συνέχεια το συνδέω με ένα DataSet στο οποίο και έχω ένα μοναδικό πίνακα με δυο στήλες. Το πόσες γραμμές έχει ο πίνακας ορίζεται παραμετρικά απο τον χρήστη. Αυτό που θέλω να κάνω είναι να πάρω μία μία τις τιμές από την δεύτερη στήλη του πίνακα. (δείτε φώτο παρακάτω).
    Τις γραμμές στον πίνακα τις προσθέτω με τον εξής κώδικα
    for(int i=1; i<=NumberOfModules; i++)
     {
         DataRow* myRow;
         myRow = SiDataTable->NewRow();
         myRow->set_Item(ModuleColumn,__box(i));
         SiDataTable->Rows->Add(myRow);
      }

    Κάπως έτσι λογικά θα παίρνω και τις τιμές που θέλω αλλά δεν έχω καταφέρει να βρω πως ακριβώς θα γίνει.

    Επίσης θέλω να μου πείτε αν γίνετε να εμφανίζετε ολόκληρο το datagrid απο την αρχή όπως στην εικόνα 1 και όχι με συνδέσμους όπως στην εικόνα 2.


    Εικόνα 1


    Εικόνα 2

    Ευχαριστώ για το χρόνο σας.

    My dream is to fly over the rainbow so high!!!!
  •  22-04-2007, 19:35 30713 σε απάντηση της 30708

    Απ: Λήψη δεδομένων απο DataTable

    Θα έπρεπε να πεις κιόλας ότι δουλεύεις με Visual Studio 2003 αντί για 2005. Στο Visual Studio 2005 το datagrid δεν εμφανίζει ιεραρχικά δεδομένα. Για να φανεί ό,τι δείχνεις στην εικόνα 2, θα πρέπει να έχεις θέσει το DataSource του grid αλλά όχι και το DataMember property. Βάλε εκεί το όνομα του DataTable και θα δείς απλά τον πίνακα σου. Ή πέρνα σε Visual Studio 2005. Γιατί να ασχοληθείς με μία παλιά έκδοση του Visual Studio, ειδικά όταν υπάρχει η δωρεάν έκδοση της Visual C++ 2005?

    Απο εκεί και πέρα, τα rows ενός πίνακα τα βλέπεις σαν arrray από το Rows property. Π.χ. το 4ο row το διαβάζεις απλά με ένα myTable->Rows[3]. Αν θέλεις να δεις την τιμή μίας συγκεκριμμένης στήλης, π.χ. της CustomerName θα γράψεις myTable->Rows[3]["CustomerName"].

     


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  23-04-2007, 01:48 30751 σε απάντηση της 30713

    Απ: Λήψη δεδομένων απο DataTable

    Σε ευχαριστώπολύ για την απάντηση.
    Το "κόλπο" με το DataMember δούλεψε όπως ακριβώς ήθελα.
    Τα στοιχεία όμως απο το DataTable δεν μπόρεσα να τα πάρω όπως ακριβώς είπες. Παίρνω κάθε σειρά μία μία και μετά παίρνω την τιμή της στήλης που με ενδιαφέρει με τον εξής κώδικα

    DataRow* temprow = SiDataTable->Rows->get_Item(i);               
    Object* temp = temprow->Item["NumberOfPieces"];
    Si[ i ] = System::Convert::ToInt16(temp); 

    Δεν ξέρω αν είναι απόλυτα σωστό και ο ποιο σύντομος τρόπος αλλά κάνει αυτό που θέλω.

    Όσο για την έκδοση που λες της C++ έχεις δίκαιο. Έχω απο την σχολή το πλήρες Visual Studio 2005 αλλά επειδή δεν έχω καθόλου εμπειρία το κάνω στο 2003. Αλήθεια υπάρχουν μεγάλες διαφορές;

    Και πάλι ευχαριστώ.

    My dream is to fly over the rainbow so high!!!!
  •  04-05-2007, 16:25 31427 σε απάντηση της 30751

    Απ: Λήψη δεδομένων απο DataTable

    Si[ i ]  =  (short)SiDataTable->Rows[ i ]["NumberOfPieces"];

    Τα υπόλοιπα δεν τα χρειάζεσαι.

    Δημοσίευση στην κατηγορία:
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems