2013-08-25 2 views
0

У меня есть несколько пустых значений в моей базе данных (которым является правильным и нормальным)LINQ ошибка с DBNull

Но когда я пытаюсь использовать LINQ я получаю InvaledCastException: Converion от типа «DBNull» для типа «String» не действует.

Как я могу это решить? Я даже не понимаю, почему это бросает эту ошибку, когда я использую dataview вместо LINQ, он отлично работает.

Это как это:

Dim sleutelLinq = dsInventaris.dtSleutel_Compl 

sleutelLinq = From sleutels in sleutelLinq WHERE sleutels("tag") LIKE "'% Me.txtTag.Text & "%'" Select sleutels Order By "tag" 
+0

Можете ли вы опубликовать LINQ, который вы используете, который вызывает ошибку ? Это с Linq2Sql? –

+0

Каков фактический код, который вы используете? Выделенный код не будет компилироваться, и похоже, вы пытаетесь использовать конкатенацию строк для использования значения в запросе LINQ, так, чтобы вы могли использовать его в строке для использования в качестве SQL-запроса. – Guffa

+0

Используете ли вы LINQ2SQL или это набор данных/данных с уже полученными данными? – Styxxy

ответ

0

Что-то вроде этого:

Dim sleutelLinq = dsInventaris.dtSleutel_Compl 

sleutelLinq = From sleutels In sleutelLinq Where Not IsDbNull(sleutels("tag")) AndAlso sleutels("tag") Like txtTag.Text 

Или, может быть, лучше:

sleutels.Where(Function(p) Not IsDbNull(p("tag")) AndAlso p("tag").Contains(txtTag.Text)).Select(Function(p) p("tag")) 
Смежные вопросы