2014-12-14 2 views
0

У меня возникла проблема, когда я использую код номера и буквы («15D») в поле базы данных «Ярлык», но когда Я извлекаю его, даже если он рассматривается как строка, VB.NET считает, что «D» означает десятичное значение и возвращает «15» вместо строки «15D», хранящейся в базе данных.VB.net Литеральные типы данных: «15D» превращается в «15»

' assigning from DB 
    Me.Filter1.ComboBox.ValueMember = "Shortcut" 
    Me.Filter1.ComboBox.DisplayMember = "Description" 
' using 
    Dim myVal as String 
    myVal = Me.Filter1.SelectedValue 

... myVal тогда «15», а не «15D».

Любая идея, как этого избежать?

Спасибо,

Libor

+0

Вы уверены, что 15D - а не 15 - фактически хранится в базе данных? Каков тип данных поля «shortcut»? –

+2

VB все равно, у вас есть еще одна проблема. –

+0

@roryap Да, я уверен, что данные с 'd', только в нижнем регистре. Я вижу это даже в описании, где я делаю CONCAT (Shortcut, '', Description) в качестве описания. Я бы лучше дважды проверить настройки фильтра (хотя я уже сделал это), если это не я, заставляю целое число ... –

ответ

0

вы можете преобразовать его в то время прочитанного, как так:

Dim myVal as String = Me.Filter1.SelectedValue 
myVal =New String((From c As Char In myVal Select c Where Char.IsDigit(c)).ToArray()) 

В другом случае вы можете сделать то же самое, как:binding combobox from dictonary

Dim dictonarySource As Dictionary(Of String, String) 
    While reader.Read 
     Dim shortCut As String = New String((From c As Char In reader.Items("Shortcut") Select c Where Char.IsDigit(c)).ToArray()) 
     dictonarySource.Add(shortCut, reader.Items("Description")) 
    End While 
    ComboBox1.DataSource = New BindingSource(dictonarySource, Nothing) 
    ComboBox1.DisplayMember = "Value" 
    ComboBox1.ValueMember = "Key" 
+0

Спасибо, это кажется хорошим предложением, но немного изменилось и, учитывая, что мне придется изменить его в генераторе кода и всех сгенерированных экземплярах, я попытаюсь найти первопричину и решить ее в первую очередь. –

Смежные вопросы