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

 

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

Πρόβλημα με την αλλαγή headertext σε columns ενός dataGridView

Îåêßíçóå áðü ôï ìÝëïò mukumuku. Τελευταία δημοσίευση από το μέλος KelMan στις 14-02-2007, 09:44. Υπάρχουν 9 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  13-02-2007, 19:28 24939

    Πρόβλημα με την αλλαγή headertext σε columns ενός dataGridView

    Καλησπέρα,

     Έχω μια βάση MS Access και απλά θέλω να εμφανίζω τα περιεχόμενα ενός πίνακα μέσα σε ένα datagridView. Γράφω c# με το Visual Studio 2005. Το πρόβλημα μου είναι αυτό το οποίο αναφέρω στον τίτλο. Έψαξα και βρήκα πως για να αλλάξω τα ονόματα των columns, αλλάζω την headertext property. Έτσι λοιπόν έγραψα τον παρακάτω κώδικα για να δημιουργώ το datagridview μου "προγραμματιστικά".

    dataGridV = new DataGridView();
    commandString = "Select * from suppliers order by supid";
    dataAdapter = new OleDbDataAdapter(commandString, selectionString);
    dataSet = new DataSet();
    dataAdapter.Fill(dataSet, "suppliers");
    dataGridV.DataSource = dataSet.Tables["suppliers"].DefaultView;
    dataGridV.Columns[1].HeaderText = "Κωδικός Προμηθευτή";        <------------------ ΠΡΟΒΛΗΜΑ
    dataGridV.Location = new Point(panel1.Location.X + 10, 200);
    dataGridV.Size = new Size(545, 400);
    dataGridV.AllowUserToDeleteRows = false;
    dataGridV.AllowUserToAddRows = false;
    dataGridV.ReadOnly = true;
    this.Controls.Add(dataGridV);

    Σημειώνω ότι χωρίς αυτή τη γραμμή λειτουργεί κανονικά.  Με την προσθήκη  λοιπόν  αυτού του κώδικα μου βγάζει το εξής  error :  Index was out of range. Must be non-negative and less than the size of the collection.

    Είμαι λίγο καινούριος στα πράγματα, όποτε ίσως να μην χρησιμοποιώ τον καταλληλότερο τρόπο για να πετύχω αυτό που θέλω, οπότε ας λύσουμε πρώτα το πρόβλημα ως έχει και ύστερα είμαι ανοιχτός σε οποιαδήποτε πρόταση βελτιστοποίησης του κώδικα... :)


    Δημοσίευση στην κατηγορία:
  •  13-02-2007, 19:43 24941 σε απάντηση της 24939

    Απ: Πρόβλημα με την αλλαγή headertext σε columns ενός dataGridView

    Ναι είναι λογικό να βγάζει λάθος για μερικούς απο τους παρακάτω λόγους:

    α) Το query δεν έχει γυρίσει αποτελέσματα, οπότε δεν έχει δημιουργηθεί κανένα column
    β) Το indexing ξεκινάει απο το 0 στην C# κι οχι απο το 1, οπότε εάν το query δούλεψε και επέστρεψε τιμές αλλά έχει μόνο 1 column, παίρνεις αυτό το λάθος καθώς έχεις μόνο 1 column (στην θέση 0) και εσύ προσπαθείς να προσπελάσεις το 2ερο column (στην θέση 1) που δεν υπάρχει.




    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  13-02-2007, 19:56 24943 σε απάντηση της 24939

    Απ: Πρόβλημα με την αλλαγή headertext σε columns ενός dataGridView

    Ευχαριστώ κατ' αρχήν για την απάντηση σου. Το γνωρίζω για το indexing, ευτυχώς δεν είμαι τόσο νέος Ό λόγος που το έκανα είναι για να δώ μήηηπως και μέσα στο datagridView αλλάζει το indexing, απλά δοκιμή της τελευταίας στιγμής :P Το query δουλεύει γιατί χωρίς την γραμμή για το headertext βγάζει αποτελέσματα., για την ακρίβεια 5 columns όποτε δεν υπάρχει και πρόβλημα indexing. Επίσης έκανα την εξής αλλαγή στο query και πέτυχα αυτό που ήθελα αλλά επιμένω να μάθω τι φταίει και δεν δουλεύει ο παραπάνω κώδικας. Η μπακάλικη μέθοδος που δοκίμασα και πήρα το αποτέλεσμα μου είναι η εξής :

    commandString = "Select supid as Κωδικός, supname as Ονοματεπώνυμo, supphone as Τηλέφωνο, supaddress as Διεύθυνση, comments as Σχόλια from suppliers order by supid";
  •  13-02-2007, 20:18 24945 σε απάντηση της 24943

    Απ: Πρόβλημα με την αλλαγή headertext σε columns ενός dataGridView

    Μήπως το View έχει και δεύτερο indexer ? πχ myView.Columns["supplier"][0].HeaderText ?
    Δεν έχω δουλέψει ποτέ το grid του .net, οπότε δεν μπορώ να είμαι σίγουρος. Απο εμπειρία απο άλλα components μιλάω.

    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  13-02-2007, 20:27 24946 σε απάντηση της 24939

    Απ: Πρόβλημα με την αλλαγή headertext σε columns ενός dataGridView

    Μόλις το δοκίμασα. Αλλά ούτε αυτό είναι τελικά. Δεν μπορώ να καταλάβω τι φταίει. Sad
  •  13-02-2007, 20:47 24948 σε απάντηση της 24946

    Απ: Πρόβλημα με την αλλαγή headertext σε columns ενός dataGridView

    Sorry, can't help you. Θα πρέπει να περιμένεις απάντηση απο κάποιον που το έχει κάνει ήδη στο grid control του .net.

    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  13-02-2007, 23:43 24959 σε απάντηση της 24939

    Απ: Πρόβλημα με την αλλαγή headertext σε columns ενός dataGridView

    Παρότι η αυτόματη δημιουργία των στηλών στο DataGridView γίνεται (θεωρητικά) όταν θέτεις το DataSource, όλα τα παραδείγματα στο MSDN για data binding θέτουν και το DataSource και το DataMember. Για δοκίμασε το:
    dataGridV.DataSource = dataSet;
    dataGridV.DataMember = "suppliers";


    Νατάσα Μανουσοπούλου
  •  14-02-2007, 01:46 24969 σε απάντηση της 24939

    Απ: Πρόβλημα με την αλλαγή headertext σε columns ενός dataGridView

    α) Γιατί δεν βάζεις ένα BreakPoint να δείς το DataGridV.Colums τι data εχει ; π.χ. DataGridV.Columns.Count

    β) για δοκίμασε να βάλεις αμέσως μετά το

    ...,DataSource = dataset ...
    DataGridV.DataBind();    // και μετά..
    dataGridV.Columns[1].HeaderText = "Κωδικός Προμηθευτή";        
    dataGridV.Location
    = new Point(panel1.Location.X +
    10, 200);
    dataGridV.Size
    = new
    Size(545, 400);
    dataGridV.AllowUserToDeleteRows
    = false;


     

     

     

  •  14-02-2007, 03:10 24970 σε απάντηση της 24969

    Απ: Πρόβλημα με την αλλαγή headertext σε columns ενός dataGridView

    Λοιπόν, έκανα ορισμένες δοκιμές και βρήκα τι φταίει. Αρχικά να σας πω ότι DataSource ορίζω, συγνώμη αν ξέχασα να το παραθέσω στον κώδικα στην αρχή. Δοκίμασα και τις δύο προτάσεις σας και δεν έγινε τίποτα. Αυτό που παρατήρησα είναι με τον debugger είναι ότι τα columns ορίζονται μετά το πέρας της εντολής this.Controls.Add(datagridV). Οπότε αν αλλάξω το headertext μετά από εκεί, λειτουργεί κανονικά. Όμως κάνοντας το έτσι, είναι προγραμματιστικά σωστό?
  •  14-02-2007, 09:44 24978 σε απάντηση της 24970

    Απ: Πρόβλημα με την αλλαγή headertext σε columns ενός dataGridView

    Το καλύτερο που έχεις να κάνεις είναι να χρησιμοποιήσεις τον designer σε μια νέα καθαρή φόρμα ώστε κατόπιν να δεις τον κώδικα που παράγει.

     


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