Καλημέρα σε όλους σας.
Εδώ και αρκετά χρόνια, προγραμματίζω σε delphi (oracle, sql server, mysql) και μου ζητήθηκε να κάνω μια εφαρμογή σε PDA. Έτσι ήρθα για πρώτη φορά σε επαφή με το Visual Studio 2005...
Αν και αρκετά έμπειρος στον χώρο, ώρες ώρες νοιώθω εντελώς χαμένος, με κάποια θέματα/προβλήματα που αντιμετωπίζω, που δεν περίμενα καν να έχω προβλήματα... όπως η χρήση του combobox.
Λοιπόν, έχω κάνει μια εφαρμογή σε vb.net που συνδέεται με μια SQLite βάση από κάτω (πάντα για PPC2003).
Έχω κάνει όμορφα κι ωραία μια φόρμα με ένα DataGrid για το browsing των εγγραφών ενός πίνακα, με την χρήση της εργασίας Generate Data Forms. Ως εδώ, όλα καλά. Στην μία φόρμα όμως, χρειάζεται να χρησιμοποιήσω ένα combobox, που εμφανίζει τιμές από έναν άλλο πίνακα.
Στα πεδία DataSource, DisplayMember και ValueMember ορίζω τιμές από τον reference πίνακα που παίρνω την λίστα (που γεμίζει με τιμές το combobox).
Και εδώ είναι που αρχίζουν τα προβλήματα.
Περίπτωση Α:
Εάν συνδέσω το combobox με τον κύριο πίνακα μέσω του πεδίου Text (όπως έκανα και με τα υπόλοιτα TextBoxes), τότε εμφανίζει την πρώτη τιμή της λίστας και όχι αυτήν που θα έπρεπε. Επίσης, εάν δικιμάσω να αλλάξω τιμή, τότε πετάγεται το εξής exception:
A first chance exception of type 'System.FormatException' occurred in mscorlib.dll
και κολλάει η φόρμα
Περίπτωση Β:
Εάν συνδέσω το combobox με τον κύριο πίνακα μέσω του πεδίου SelectedValue τότε εμφανίζει την πρώτη τιμή της
λίστας και όχι αυτήν που θα έπρεπε. Παρόλα αυτά, μπορώ να αλλάξω τιμές, και μάλιστα αποθηκεύονται κανονικά.
Η πλάκα είναι ότι εάν αποθηκεύσω χωρίς να αλλάξω τίποτε, παίρνει την μεταβολή από το combobox και αποθηκεύει στην εγγραφή την πρώτη τιμή του πίνακα...
Και στις δύο περιπτώσεις όμως, το σημαντικό πρόβλημα είναι ότι δεν εμφανίζει στο combobox την σωστή τιμή αλλά φέρνει την πρώτη τιμή της λίστας.
Εάν μπορεί να βοηθήσει κάποιος, θα ήμουν υπόχρεος...
Στράτος Νικολαΐδης