DataAdapter Выбрать строку из схемы базовой таблицы?

Когда я создавал свой .xsd, мне приходилось выбирать столбцы для каждой таблицы, и он создавал схему для таблиц, верно? Итак, как я могу получить эту строку Select для использования в качестве базовой команды Select для новых экземпляров адаптеров данных, а затем просто добавить к ней предложения Where и OrderBy по мере необходимости?

Это избавило бы меня от необходимости синхронизировать каждый список полей DataAdapter (для одной и той же таблицы) со схемой этой таблицы в файле .xsd.

Разве не принято иметь несколько DataAdapter, которые работают с определенной схемой таблицы, но с разными параметрами в предложениях Where и OrderBy? Разумеется, нет необходимости поддерживать (или даже с избыточностью создавать) часть списка полей в строках Select для полдюжины адаптеров данных, которые все работают с одной и той же схемой таблицы.

Я представляю себе что-то вроде этого псевдокода:

BaseSelectString = MyTypedDataSet.JobsTable.GetSelectStringFromSchema()  // Is there such a method or technique?

WhereClause = " Where SomeField = @Param1 and SomeOtherField = @Param2"
OrderByClause = " Order By Field1, Field2"

SelectString=BaseSelectString + WhereClause + OrderByClause

OleDbDataAdapter adapter = new OleDbDataAdapter(SelectString, MyConn)

person MattSlay    schedule 07.04.2009    source источник


Ответы (1)


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

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

Убедитесь, что у вашей строки подключения есть разрешения на просмотр информации столбца.

Вы можете добавить несколько запросов к одному адаптеру таблицы. Адаптеры таблиц в конструкторе отображаются в разделе со схемой таблицы вверху и запросами внизу. Запрос по умолчанию будет контролировать, какие столбцы доступны для вывода из других запросов. Чтобы добавить дополнительный запрос, щелкните правой кнопкой мыши адаптер таблицы и выберите «Добавить-> запрос» или, если вы выбираете нижнюю часть адаптера таблицы, вы можете выбрать «Добавить запрос ...». Любой новый SQL-запрос, который вы создаете, будет начинаться с SQL из запроса по умолчанию. Вы даете каждому новому запросу имя метода, которое можно использовать вместо методов запроса по умолчанию «Fill» или «GetData». Предполагается, что каждый новый запрос будет иметь набор результатов, соответствующий запросу по умолчанию, даже если они могут иметь разные параметры предложения «where».

Короче

  • У вас может быть один адаптер таблицы для каждой таблицы, просто добавьте несколько запросов.
  • Каждый дополнительный запрос может иметь разные параметры предложения «Где», если все они возвращают одни и те же столбцы.
person Carter Medlin    schedule 08.05.2010