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

 

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

επιλογη records στο dataset

Îåêßíçóå áðü ôï ìÝëïò xterm. Τελευταία δημοσίευση από το μέλος thAAAnos στις 25-09-2006, 13:36. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  17-01-2006, 13:16 8755

    επιλογη records στο dataset

    Εχω δυο tables ένα parent και ενα child. Αρχικα οταν ηθελα να εξάγω καποια rows απο το parent table εγραφα π.χ dataset.Tables("parent").Select(sql) οπου το sql ειναι το string με το φιλτρο. Τωρα θέλω απο το dataset να παίρνω τα rows με sql φιλτρο που να περιεχει πεδια και απο το parent table και απο το child. Με table select method δεν νομιζω να γινετε. Παιδια plz Help...

    Το project ειναι σε vb.net 2005 με ado.net 2.0

    γροικάσε μπάρμπα τ' αρνάκια!!
  •  17-01-2006, 13:58 8756 σε απάντηση της 8755

    Απ: επιλογη records στο dataset

    Προτού απαντήσω σημειώνω ότι μιλάω με εμπειρία του ADO.NET στην 1.1 Version. Αφού λοιπόν ξεκαθαρίστηκε αυτό μπορώ να πω ότι ΔΕΝ μπορείς να πάρεις με straightforward τρόπο ένα DataRow που να περιέχει πεδία από δύο διαφορετικά DataTable, ασχέτως relations που μπορεί να υπάρχουν μεταξύ τους. Προφανώς δεν αναφέρω τι είδους workaround μπορείς να κάνεις γιατί εκεί το limit είναι μόνο η φαντασία σου... :)

    Αναμένω διόρθωση εάν έχει αλλάξει κάτι στο ADO.NET 2.0. Επίσης αναμένω τη μέρα που θα χαλαρώσω λίγο και θα έχω χρόνο να μάθω κι εγώ το .NET 2.0 (σιέλω κι εγώ να παίζω...) :)
    Στερνή μου γνώση να σε είχα πρώτα...
  •  17-01-2006, 15:58 8761 σε απάντηση της 8755

    Απ: επιλογη records στο dataset

    Τι ακριβώς θέλεις να κάνεις;

    Αν θα βάλεις ένα φίλτρο στο parent table, θα μπορέσεις από το relation να πάρεις τα child που αντιστοιχούν σε κάθε γραμμή.

     

    George J.

     


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  17-01-2006, 16:37 8763 σε απάντηση της 8761

    Απ: επιλογη records στο dataset

    θα ηθελα π.χ sql="parent_col1='κατι' and child_col1='κατι αλλο'"

    γροικάσε μπάρμπα τ' αρνάκια!!
  •  17-01-2006, 18:08 8764 σε απάντηση της 8755

    Απ: επιλογη records στο dataset

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

    Περίπτωση πρώτη :
    Τα DataRows που σου επιστρέφονται με βάση το/τα κριτήρια που έβαλες στο SELECT του Parent Datatable να περιέχουν πεδία και από το Parent αλλά και από το Child DataTable.

    Περίπτωση δεύτερη:
    Τα κριτήρια που βάζεις στο SELECT του DataTable να περιέχουν πεδία και από το Parent αλλά και από το Child DataTable.

    Τουλάχιστον αν διαβάσει προσεχτικά κάποιος τα δύο σου post αυτά τα δύο, τουλάχιστον, συμπεράσματα θα βγάλει.

    Σχετικά με το πρώτο, αυτό δεν γίνεται. Οπότε αν θέλεις κάτι τέτοιο ψάξε με κάποιον άλλον τρόπο. Ο kkara απάντησε ήδη.

    Τώρα σχετικά με το δεύτερο και, αν αυτό εννοούσες, γίνεται. Στην περίπτωση αυτή όμως και, όχι μόνο, όταν έχω ένα DataTable με το οποίο γνωρίζω ότι θα έχω SELECT για να φιλτράρω εγγραφές, προσωπικά χρησιμοποιώ DataViews. Η βασική διαφορά με το SELECT του DataTable είναι ότι το DataTable επιστρέφει έναν πίνακα με DataRows τα οποία μετά θα πρέπει να φορτώσεις σε κάποιο DataTable για να κάνεις Binding ή ότι άλλο θέλεις. Με το DataView.RowFilter όμως αυτό δεν ισχύει. Αλλά έχεις ένα DataView το οποίο μετά το φίλτρο θα περιέχει μόνο τις εγγραφές που ικανοποιούν το φίλτρο. Επίσης και αυτό σε ενδιαφέρει πιο πολύ αν θέλεις στο σύνταξη του φίλτρου να αναφερθείς σε πεδίο που ανήκει σε Child Table γράφεις "Child.[ColumnName]=10" π.χ και αν θέλεις να αναφερθείς στο Parent Table "Parent.[ColumnName]=1" π.χ

    Ελπίζω να βοήθησα.
  •  17-01-2006, 19:43 8768 σε απάντηση της 8755

    Απ: επιλογη records στο dataset

    Είναι πολύ καλύτερο να χρησιμοποιήσεις το DataTableReader του ADO.Net 2 το οποίο κάνει αυτό που νομίζουμε οτι θέλεις να κάνεις, δηλαδή να φιλτράρει τα δεδομένα ανάλογα με ενα query.
    Παναγιώτης Κεφαλίδης

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

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  18-01-2006, 13:02 8782 σε απάντηση της 8768

    Απ: επιλογη records στο dataset

    Παιδια συγγνωμη για τις ανακριβειες μου, αυτο που ουσιαστικα ηθελα να κανω ειναι απο ενα select query που κανει joins parent με child tables να παρω τα id του parent να τα βαλω σε ενα listview και μετα στο onclick event του listview να κανω το εξης

    Dim i As Integer
                For i = 0 To ListView1.Items.Count - 1
                    If ListView1.Items(i).Selected = True Then           
                        frmdata.ProtoBindingSource.Position = frmdata.ProtoBindingSource.Find("id", ListView1.Items(i).Text)
                    End If
                Next i

    αρχικα δοκιμασα με select στο datatable αλλα τιποτα και ετσι χρισιμοποιησα ενα datareader, εβαλα το query μου πηρα τα id μου και ολα μια χαρα.Αυτο που εξαρχης ηθελα να υλοποιησω ειναι μια φορμα αναζητησης.
    Ευχαριστω για τη βοηθεια...



    γροικάσε μπάρμπα τ' αρνάκια!!
  •  25-09-2006, 13:36 17145 σε απάντηση της 8755

    Απ: επιλογη records στο dataset

    Ισώς να σε βοηθησει η Filter παράμετρος του binding source...

    Φτιαξε ενα bindingsource για τον πατέρα και μετα ενα αλλο bindingsource για το παιδί μεσω του FK relation και πέτα τα φιλτρα που θες εκεί.

    Λογικά τα data που θες θα πρεπει να στελνοντε στα controls αυτοματα...

    Το ζήτημα θα είναι πως και που θα κανεις set τα bindingsource::Filter

    Μια γρηγορη ιδεα ειναι χωρις να το εχω δοκιμασει μια και δεν εχω VS προχειρο...
    ->Hail Eris All Hail Discordia<-
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems