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

 

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

Datagridview και απεικόνιση δεδομενων σε Cell από διαδοχικές σχέσεις

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

    Datagridview και απεικόνιση δεδομενων σε Cell από διαδοχικές σχέσεις

    Θα περιγράψω συνοπτικά τι θέλω να κάνω.
    Έχω 3 πίνακες σε ένα Dataset
    Table A: Dhmoi (Fields: DhmosID, DhmosName)
    Table B: Oikismoi (Fields: OikismosID, OikismosName, DhmosID(FK))
    Table C: Katasthmata(Fiedls: KatasthmaID, KatasthmaName, OikismosID (FK))

    Επίσης έχω και 2 σχέσεις που συνδέουν τους πίνακες

    Relation1: Dhmoi_has_Oikismoys (σχέση που συνδέει τους πίνακες Α και Β)

    Relation2: Oikismoι_has_Katasthmata (σχέση που συνδέει τους πίνακες B και C)

    Θέλω λοιπόν σε ένα DatagridView να εμφανίσω τα δεδομένα μου ως εξής:
    KatasthmaName, OikismosName, DhmosName

    Είναι εφικτό κάτι τέτοιο.Υπάρχει κάποιο παράδειγμα;
    Ευχαριστώ εκ των προτέρων!
  •  01-12-2007, 10:12 37902 σε απάντηση της 37898

    Απ: Datagridview και απεικόνιση δεδομενων σε Cell από διαδοχικές σχέσεις

    Δοκίμασες να φτιάξεις ένα view που να συνδιάζει τα δεδομένα από τα τρία table και κατόπιν να φτιάξεις ένα dataview από το view;

     

    George J.


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

    Απ: Datagridview και απεικόνιση δεδομενων σε Cell από διαδοχικές σχέσεις

    To DataGridView δεν υποστηρίζει binding σε πολλαπλά datasources ούτε master-detail στο ίδιο gridview. Θα πρέπει να κάνεις ένα database view όπως λέει ο Γιώργος ή τέλος πάντων να στηρίξεις το datasource σε ένα join query. Βέβαια κατόπιν είναι αρκετά δύσκολο να κάνεις insert/update/delete πάνω στο DataGridView.
    Vir prudens non contra ventum mingit
  •  01-12-2007, 12:12 37910 σε απάντηση της 37909

    Απ: Datagridview και απεικόνιση δεδομενων σε Cell από διαδοχικές σχέσεις

    KelMan:
    To DataGridView δεν υποστηρίζει binding σε πολλαπλά datasources ούτε master-detail στο ίδιο gridview. Θα πρέπει να κάνεις ένα database view όπως λέει ο Γιώργος ή τέλος πάντων να στηρίξεις το datasource σε ένα join query. Βέβαια κατόπιν είναι αρκετά δύσκολο να κάνεις insert/update/delete πάνω στο DataGridView.

    Πιθανώς ένας συνδυασμός από ένα DataGridView/DetailsView, θα βοηθούσε πολύ σε αυτή την περίπτωση...

     

    George J.


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

    Απ: Datagridview και απεικόνιση δεδομενων σε Cell από διαδοχικές σχέσεις

    Να συμπληρώσω στις προτάσεις των GJC και Kelman:

    Για edit στον Table C: Katasthmata:

    1. Σχετικά εύκολη λύση
    Κάνεις bind στον πίνακα Table C: Katasthmata
    Στο dataview στο item template συνδέεις το OikismosID 2 φορές
        α. με ένα dropdown που το έχεις ανενεργό για να δείχνεις τον οικισμό
        β. επίσης με ένα drop down που το έχεις ανενεργό που με join query δείχνει τον δήμο
    Στο edit templete έχεις μόνο το α. dropdown και κάνεις edit μόνο τον OikismosID.
    Η λύση αυτή είναι λίγο αργή.

    2. Πιο περίπλοκη λύση:
    Ομοίως με 1. αλλά στο item template αντί να έχεις ανενεργά dropdown έχεις δικά σου control
    π.χ. (to παράδειγμα είναι με κωδικούς και περιγραφές μοναδων μέτρησης)
        Public Class MonadesMetrisisLabel
            Inherits Label

            Public Property SelectedValue() As Int64
                Get
                    Return Me.ViewState("fldMonadaMetrisisID")
                End Get
                Set(ByVal value As Int64)
                    If Not Me.DesignMode Then
                        Me.ViewState("fldMonadaMetrisisID") = value
                        If Not IsNothing(value) Then
                            Dim TheItem As BLL.tblMonadesMetrisis = DAL.tblMonadesMetrisisFactory.GetByPK(SelectedValue)
                            If TheItem IsNot Nothing Then
                                MyBase.Text = String.Format("{0}", TheItem.fldMonadaMetrisisDescription)
                            Else
                                MyBase.Text = ""
                            End If
                        Else
                            MyBase.Text = ""
                        End If
                    End If
                End Set
            End Property

        End Class
    και κάνεις bind στο SelectedValue πάλι
    (FTR o κώδικας είναι του Abot)

    3. Άλλες προτάσεις :
    Αν θέλεις στο edit template να επιλέγεις πρώτα τον δήμο και μετά τον οικισμό - στην πιθανή περίπτωση που οι οικισμοί είναι πολλοί και θες να τους φιλτράρεις πρώτα -τότε θα πρέπει να έχεις και εκεί 2 dropdown και να πιάνεις στο SelectedValue changed event του dropdown με τους δήμους και μετα να γεμιζεις το drop down με τους οικισμούς. Δες και λιγο ajax θα κάνει το interface πιο γρήγορο και φιλικό. Γίνεται αρκετά περίπλοκο
    Επίσης σε αυτή την περίπτωση ενδέχεται να παίζει και το cascading drop down combo boxes  
    Δες http://www.asp.net/AJAX/AjaxControlToolkit/Samples/CascadingDropDown/CascadingDropDown.aspx
    Αλλά πρέπει να φτιάξεις webservices κλπ

    Καλό ψαξιμο.

    Harry Tsavdaris
  •  01-12-2007, 14:36 37916 σε απάντηση της 37915

    Απ: Datagridview και απεικόνιση δεδομενων σε Cell από διαδοχικές σχέσεις

    Χάρη είμαστε στο Winforms Smile
    Vir prudens non contra ventum mingit
  •  01-12-2007, 15:24 37917 σε απάντηση της 37916

    Απ: Datagridview και απεικόνιση δεδομενων σε Cell από διαδοχικές σχέσεις

    KelMan:
    Χάρη είμαστε στο Winforms Smile

    Χθες βράδυ δεν ξενύχτησα για να είμαι τόσο απρόσεκτος οπότε είμαι εντελώς αδικαιολόγητος.
    Ζητώ συγγνώμη.Sad

    Harry Tsavdaris
  •  01-12-2007, 16:51 37921 σε απάντηση της 37917

    Απ: Datagridview και απεικόνιση δεδομενων σε Cell από διαδοχικές σχέσεις

    Smile Δεν έγινε και τίποτα... Όλοι την έχουμε πατήσει έτσι.

    Πάντως μπορείς να μεταφέρεις το post σου στα web forms με ανάλογο τίτλο. Μπορεί να αποτελέσει καλή αρχή για κουβέντα και ίσως βοηθήσει άλλους στο μέλλον.


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