2016-01-17 2 views
1

Я пытаюсь проверить, установлено ли поле data из моих записей DataTable равным '0' или '1'.
Вся моя локальная запись сохраняется в local_ds DataTable. Теперь запись, что я хочу проверить это:
21a956af-f304-4c72-97cf-1ef08e8719fc для лучшего видения, которое я вставить здесь содержание моего стола (то есть также содержание моего DataTable local_ds):.Выберите возврат неправильной длины

enter image description here

Как вы можете посмотреть запись, которую я хочу проверить, есть набор поле data в 0. Теперь я выполняю исследование по этому коду:

Dim local_data = local_ds.Tables(0).Select(String.Format("GUID = '{0}'", "21a956af-f304-4c72-97cf-1ef08e8719fc"), String.Format("data", 1)) 

код выше использования LINQ принять результат, во всяком случае, я передать GUID для поиска и данных поля как 1. Этот код должен быть возвращен local_data.length равным 0, но вместо этого вернуть 1, и это неверно, потому что я хочу проверить, только если поле data равно 0 или 1. В этом примере результат должен быть local_data.length = 0, потому что в запросе LINQ Я четко указал, что хочу найти запись с GUID = x и data = 1.
Я уже знаю, что эта запись существует в базе данных, переменная local_data должна помочь мне узнать, какой тип валоризации имеет поле data.
Итак, что я сделал не так?

ответ

2

Нет, в коде выше вы не используете LINQ.

DataTable.Select - это метод, доступный начиная с версии 1.1 NET Framework и существует in four possible overloads.

Тот, который вы используете, является тем, который принимает в качестве первого параметра условие WHERE и, как второй параметр, порядок SORT. Таким образом, вы действительно не проходите условие WHERE .... AND Data = 1, но Data=1 интерпретируется как порядок сортировки.

Правильная строка для КУДА параметр должен быть

Dim where as String = String.Format("GUID = '{0}' AND Data = {1}", _ 
      "21a956af-f304-4c72-97cf-1ef08e8719fc", 1) 
Dim local_data = local_ds.Tables(0).Select(where) 
+0

Ухм нормально @Steve, но "), 1)" должно быть: дим, где, как String = String.Format ("GUID =«{0} 'AND Data = {1} ", _ " 21a956af-f304-4c72-97cf-1ef08e8719fc ", 1). Вопрос OT: Как я могу задать стиль кода в комментарии, например ctrl + k? В любом случае, позвольте мне попробовать ваше решение. – Dillinger

+1

В комментарии вы можете использовать символ обратного хода вокруг кода, который вы хотите отображать как «код». Получите обратный ход с 'ALT + 096' – Steve

+1

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

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