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

 

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

Υλοποίηση DataGridView με πεδία απο διαφορετικά tables και Wizards VS 2010 Express

Îåêßíçóå áðü ôï ìÝëïò sorak. Τελευταία δημοσίευση από το μέλος sorak στις 24-02-2011, 11:04. Υπάρχουν 0 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  24-02-2011, 11:04 63648

    Υλοποίηση DataGridView με πεδία απο διαφορετικά tables και Wizards VS 2010 Express

    Παιδιά καλημέρα. Είμαι και εγώ ένας από τους νέους στο .net και C# (Visual Studio Express 2010) και θα ήθελα να ρωτήσω για τον σωστό τρόπο υλοποίησης κάποιων πραγμάτων από προγραμματιστικής άποψης. Αναφέρω ένα παράδειγμα (δεν αποτελεί πραγματική εφαρμογή) για να μπορέσουν οι ερωτήσεις μου να γίνουν κατανοητές. Ας υποθέσουμε ότι έχω 3 tables Customers με πεδία - CustomerID (Primary Key) -CustomerName Products - ProductID (Primary Key) - ProductDescription Orders με πεδία - OrderID (Primary Key) - OrderDate - CustromerID - ProductID Για ευκολία ας υποθέσουμε ότι κάθε order έχει μόνο ένα product. Ξεκινώντας με το .net άρχισα να χρησιμοποιώ τα wizard θεωρώντας ότι υπάρχουν για να κάνουν τη ζωή μας εύκολη. Οπότε αναφέρω τι ήθελα να κάνω και πως το υλοποίησα με τις αντίστοιχες ερωτήσεις. Αρχικά δημιούργησα τα tables με τον Database Explorer καθώς επίσης και τα relations μεταξύ των tables. Customers.CustomerID (1 σε πολλά) Orders.CustomersID Products.ProductID (1 σε πολλά) Orders.ProductID 1.Ερώτηση: Έχει νόημα να δημιουργήσω αυτά τα relations με τον Database Explorer?

    Θέλω να έχω ένα Form Orders που θα έχει ένα DataGridView με τα περιεχόμενα του orders με όνομα DataGridViewOrders Με drag and drop παίρνω το table Orders από το Data Source και το ρίχνω στη φόρμα. Με αυτό τον τρόπο όμως το DataGridView δεν έχει το CustomerName ούτε και το ProductDescription (όπως θα ήθελα) αλλά το CustomerID και το ProductID όπως είναι αναμενόμενο. Οπότε μέσω του Data Sources και με τον Wizard δημιουργώ ένα νέο Table Adapter με όνομα OrdersJoinCustomerProduct (Add, Table adapters…) και με το Query Builder… παίρνω τα πεδία Orders.OrderID Orders.OrderDate Products. ProductDescription Customers. CustomerName και στη φόρμα μου κάνω drag and drop τον νέο πίνακα και παίρνω το αποτέλεσμα που θέλω.

    2. Ερώτηση: Είναι σωστή αυτή η υλοποίηση ή θα πρέπει να κάνω κάτι άλλο (ίσως με κώδικα) ? 3. Ερώτηση: Αν σε αυτό το DataGridViewOrder των παραγγελιών θέλω να μπορεί ο χρήστης

    να κάνει και αλλαγές σε κάποιο πεδίο θα μπορεί με αυτή την υλοποίηση, αν ναι, πώς? Στo Form αυτό των Orders θέλω να έχω και ένα comboBox με τα products (σαν list) ώστε να μπορώ να επιλέξω ένα product και να φιλτράρω τα περιεχόμενα του DataGridViewOrders. Οπότε παίρνω ένα comboBox, κάνω check το Use Data Bound Items και ενημερώνω τα αντίστοιχα πεδία ώστε να πάρω στη λίστα του ComboBox το ProductDescription. Με την επιλογή του χρήστη από το comboBox ενημερώνω το odersJoinCustomerProduct.Filter για να ενεργοποιήσω το φίλτρο στο DataGridViewOrders. 4. Ερώτηση: Είναι σωστή αυτή η υλοποίηση ? 5. Ερώτηση: Υπάρχει διαφορετικός τρόπος αντιμετώπισης αν το table Orders έχει 50.000 εγγραφές.

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

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