Select * from orders where salesrep='bob'
Will find BOB, bob, bOb, etc. (but not Robert)So I have a DataGridViewComboboxColumn for that field, but since the data all comes from Paradox, where anything goes, I have a mixture of case scenarios.
As it turns out, even though your database cares not what capitalization you use, the combobox does. It WILL NOT MATCH a field that has an alternate capitalization of whats in your data.
Example: if you have DONNA in the lookup list, and Donna in the orders table, the dropdown will display SOME RANDOM OTHER NAME.
It also throws a dataerror that looks like...
Order Entry [OrdersGrid]: Row 2 Column 16 Context Formatting, PreferredSize... System.Windows.Forms.DataGridViewDataErrorEventArgs DATA: TONYA
...and it throws this error for each and every row you attempt to display on the screen.
The solution?
All I did was load the Purchase Orders table using the salesman as its own lookup. like this
update Purchase_Order set Salesman=(select Salesman from Salesman S where S.Salesman=Purchase_Order.Salesman)
So, we're looking up the salesman, say "Bob" in the Salesman lookup table (finding, say "BOB") and writing that back over the Bob in the row, essentially updating the names in such a way as to match exactly what's in the lookup table.
Now our DataGridViewComboboxColumns work, and we didn't even have to edit the program!
...
* I still can't make myself use the word indexes.
Bryan Valencia is a contributing editor and founder of Visual Studio Journey. He owns and operates Software Services, a web design and hosting company in Manteca, California.
No comments:
Post a Comment