Как получить только определенные столбцы? - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть этот код, который выполняет SQL-запрос, который должен вернуть только один столбец, BIN_NUMBER, так как это единственная вещь в операторе выбора.Однако когда я присваиваю результат emptybins сетке данных, он показывает все столбцы, изначально находящиеся в таблице BINS.Есть ли способ вернуть только столбец из оператора select, чтобы мне не приходилось скрывать другие столбцы вручную?

Я знаю, что смогу сделать это, если построю запрос с помощью LINQ, но спрашиваю конкретнооб использовании с этой функцией.(dc - это DataContext из класса LINQ to SQL)

 var emptyBins = dc.ExecuteQuery<BIN>(
     @"SELECT BINS.BIN_NUMBER
       FROM BINS LEFT JOIN 
            INVENTORY_ACTIVE ON BINS.BIN_NUMBER = INVENTORY_ACTIVE.BIN_NUMBER
       WHERE (((BINS.BIN_TYPE)={0}) AND 
             ((INVENTORY_ACTIVE.BIN_NUMBER) Is Null))
       ORDER BY BINS.BIN_NUMBER;", "INVENTORY");

if (dc.DatabaseExists()) MainGrid.ItemsSource = emptyBins;

1 Ответ

0 голосов
/ 20 декабря 2018

При привязке данных к объекту используется модель компонента для типа - в данном случае BIN.Тот факт, что вы только заполнили один столбец, не имеет значения - и привязка пользовательского интерфейса теперь не будет знать.Если вы заполняете частичный объект, либо настройте пользовательский интерфейс вручную, а не полагайтесь на автоматическую генерацию столбцов - или создайте тип, специфичный для вашего пользовательского интерфейса, с просто полями, в которых есть значения - и используйте ExecuteQuery<ThatType>,Вы могли бы также иметь возможность просто использовать ExecuteQuery<int> (или любой другой тип).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...