Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα,

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

 

Το project μου είναι C# 2010 .NET Framework 4.0 & SQL Server 2008 ... Προκειμένου να κάνω τα πράγματα λίγο πιο compact, θεώρησα καλύτερο να κάνω χρήση του DataBinding του ADO.NET και μέχρι εδώ όλα καλά και Αγια ... Επειδή έχω πολλά Lookup Comboboxes σε πίνακες (μάζεμα τιμών κλπ), είδα κάτι που με ανησυχεί ιδιαίτερα:

 

Το databinding δεν μου δουλεύει στα Lookup Comboboxes όπως θα έπρεπε. Δηλαδή τα Lookup πεδία δεν ακολουθούν τις τιμές των Linked πεδίων. Αν πχ, κάνω move σε άλλη εγγραφή ή δείχνουν άλλα αντί άλλων, ή μένουν κολλημένα! Επειδή φαντάστηκα οτι ήταν θέμα Foreign Keys, διπλο έλεγξα τις συνδέσεις των πινάκων στη βάση και στο DataSet και φαίνονται σωστές! Το databinding γίνεται όπως παρακάτω:

 

>
       private void CustomersManagement_Load(object sender, EventArgs e)
       {
           this.professionsTableAdapter.Fill(this.BDataSet.Professions);
           this.citiesTableAdapter.Fill(this.BDataSet.Cities);
           this.regionsTableAdapter.Fill(this.BDataSet.Regions);
           this.countriesTableAdapter.Fill(this.BDataSet.Countries);
           this.customersTableAdapter.Fill(this.ΒDataSet.Customers);

           resCountryIdComboBox.DataSource = BDataSet;
           resCountryIdComboBox.DisplayMember = "Countries.Country";
           resCountryIdComboBox.ValueMember = "Countries.EntryId";
           resCountryIdComboBox.DataBindings.Add(new Binding("SelectedValue", BDataSet, "Customers.ResCountryId", true, DataSourceUpdateMode.OnValidation));

           resCityIdComboBox.DataSource = BDataSet;
           resCityIdComboBox.DisplayMember = "Cities.CityName";
           resCityIdComboBox.ValueMember = "Cities.EntryId";
           resCityIdComboBox.DataBindings.Add(new Binding("SelectedValue", BDataSet, "Customers.ResCityId", true, DataSourceUpdateMode.OnValidation));

           resRegionIdComboBox.DataSource = BDataSet;
           resRegionIdComboBox.DisplayMember = "Regions.RegionName";
           resRegionIdComboBox.ValueMember = "Regions.EntryId";
           resRegionIdComboBox.DataBindings.Add(new Binding("SelectedValue", BDataSet, "Customers.ResRegionId", true, DataSourceUpdateMode.OnValidation));

           professionComboBox.DataSource = BDataSet;
           professionComboBox.DisplayMember = "Professions.ProfDescription";
           professionComboBox.ValueMember = "Professions.EntryId";
           professionComboBox.DataBindings.Add(new Binding("SelectedValue", BDataSet, "Customers.Profession", true, DataSourceUpdateMode.OnValidation));
       }

 

Βλέπει κανείς κάτι στραβό που δεν βλέπω?? Σημειώνω οτι αυτό μου συμβαίνει μόνο στα ComboBoxes!

 

Ευχαριστώ!

Δημοσ.

Καλησπέρα,

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

 

Το project μου είναι C# 2010 .NET Framework 4.0 & SQL Server 2008 ... Προκειμένου να κάνω τα πράγματα λίγο πιο compact, θεώρησα καλύτερο να κάνω χρήση του DataBinding του ADO.NET και μέχρι εδώ όλα καλά και Αγια ... Επειδή έχω πολλά Lookup Comboboxes σε πίνακες (μάζεμα τιμών κλπ), είδα κάτι που με ανησυχεί ιδιαίτερα:

 

Το databinding δεν μου δουλεύει στα Lookup Comboboxes όπως θα έπρεπε. Δηλαδή τα Lookup πεδία δεν ακολουθούν τις τιμές των Linked πεδίων. Αν πχ, κάνω move σε άλλη εγγραφή ή δείχνουν άλλα αντί άλλων, ή μένουν κολλημένα! Επειδή φαντάστηκα οτι ήταν θέμα Foreign Keys, διπλο έλεγξα τις συνδέσεις των πινάκων στη βάση και στο DataSet και φαίνονται σωστές! Το databinding γίνεται όπως παρακάτω:

 

>
       private void CustomersManagement_Load(object sender, EventArgs e)
       {
           this.professionsTableAdapter.Fill(this.BDataSet.Professions);
           this.citiesTableAdapter.Fill(this.BDataSet.Cities);
           this.regionsTableAdapter.Fill(this.BDataSet.Regions);
           this.countriesTableAdapter.Fill(this.BDataSet.Countries);
           this.customersTableAdapter.Fill(this.ΒDataSet.Customers);

           resCountryIdComboBox.DataSource = BDataSet;
           resCountryIdComboBox.DisplayMember = "Countries.Country";
           resCountryIdComboBox.ValueMember = "Countries.EntryId";
           resCountryIdComboBox.DataBindings.Add(new Binding("SelectedValue", BDataSet, "Customers.ResCountryId", true, DataSourceUpdateMode.OnValidation));

           resCityIdComboBox.DataSource = BDataSet;
           resCityIdComboBox.DisplayMember = "Cities.CityName";
           resCityIdComboBox.ValueMember = "Cities.EntryId";
           resCityIdComboBox.DataBindings.Add(new Binding("SelectedValue", BDataSet, "Customers.ResCityId", true, DataSourceUpdateMode.OnValidation));

           resRegionIdComboBox.DataSource = BDataSet;
           resRegionIdComboBox.DisplayMember = "Regions.RegionName";
           resRegionIdComboBox.ValueMember = "Regions.EntryId";
           resRegionIdComboBox.DataBindings.Add(new Binding("SelectedValue", BDataSet, "Customers.ResRegionId", true, DataSourceUpdateMode.OnValidation));

           professionComboBox.DataSource = BDataSet;
           professionComboBox.DisplayMember = "Professions.ProfDescription";
           professionComboBox.ValueMember = "Professions.EntryId";
           professionComboBox.DataBindings.Add(new Binding("SelectedValue", BDataSet, "Customers.Profession", true, DataSourceUpdateMode.OnValidation));
       }

 

Βλέπει κανείς κάτι στραβό που δεν βλέπω?? Σημειώνω οτι αυτό μου συμβαίνει μόνο στα ComboBoxes!

 

Ευχαριστώ!

 

Αφήστε παιδιά ... το βρήκα το γ..##@#$$%^#%&$#%,,,

όταν γράφω πχ:

>
professionsComboBox.DataBindings.Add(new Binding("SelectedValue", BDataSet, "Customers.Profession", true, DataSourceUpdateMode.OnValidation));

Στη περίπτωση μου το BDataSet είναι λάθος.. γιατί εφόσων το Navigation γίνεται από BindingNavigator component, αυτό που θα έπρεπε να χρησιμοποιήσω για να συνδεθούν όλα στο Navigation είναι να BindingDataSource που διασυνδέει τα fields όλα μαζί στο WinForm, και όχι το DataSet γενικά και αόριστα. Γι'αυτό και φυσικά δεν κουνιόντουσαν τα ριμάδια, στο PositionChanged του κεντρικού DataSource ...

 

Thanks Anyway!

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...