Я пытаюсь сохранить слегка фильтрованную копию базы данных для автономного использования, используя ADO.NET DataSets. Есть несколько столбцов, которые мне нужно , а не , чтобы взять с собой. Пока, похоже, мои варианты:
- мириться с колоннами
- Получите неразумно умный способ, которым я
SELECT
строк для DataSet
- Взломать вывод XML для удаления столбцов
Я удалил записи столбцов в конструкторе DataSet. WriteXMl
все еще выводит их, к моему ужасу. Если есть способ ограничить вывод WriteXml
типизированными строками, я бы хотел это услышать.
Я пытался отфильтровать столбцы с осторожными SELECT
утверждениями, но в итоге получил ConstraintException
, который я не смог решить. Замена запроса одной таблицы на SELECT *
добилась цели. Я подозреваю, что смогу разрешить исключение, если уделил достаточно времени. Я также подозреваю, что это может вернуться снова, когда мы разрабатываем схему. Я бы предпочел не передавать такую проблему обслуживания моим преемникам.
В общем, я думаю, что будет проще отфильтровать вывод XML. Мне нужно сжать его, сохранить и (позже) загрузить, распаковать и позже прочитать обратно в DataSet. Фильтрация XML - это всего лишь еще один шаг, и, что еще лучше, его нужно будет проводить раз в неделю или около того.
Могу ли я изменить поведение DataSet
? Должен ли я фильтровать XML? Есть ли какой-то чертовски простой способ, которым я могу запросить почти все, но не совсем, все, не сталкиваясь с ConstraintException
? Или мой подход совершенно неверный? Я очень ценю ваши предложения.
ОБНОВЛЕНИЕ: Оказывается, я набрал ConstraintException
по простой причине: я забыл удалить строго типизированный столбец из одной таблицы данных. Нельзя было быть NULL
. Когда я выбрал все столбцы , кроме этого столбца, значение было NULL
, и ... и, да, это очень смущает, большое спасибо за вопрос.