Как я могу ограничить вывод DataSet.WriteXML типизированными столбцами? - PullRequest
0 голосов
/ 12 января 2009

Я пытаюсь сохранить слегка фильтрованную копию базы данных для автономного использования, используя ADO.NET DataSets. Есть несколько столбцов, которые мне нужно , а не , чтобы взять с собой. Пока, похоже, мои варианты:

  • мириться с колоннами
  • Получите неразумно умный способ, которым я SELECT строк для DataSet
  • Взломать вывод XML для удаления столбцов

Я удалил записи столбцов в конструкторе DataSet. WriteXMl все еще выводит их, к моему ужасу. Если есть способ ограничить вывод WriteXml типизированными строками, я бы хотел это услышать.

Я пытался отфильтровать столбцы с осторожными SELECT утверждениями, но в итоге получил ConstraintException, который я не смог решить. Замена запроса одной таблицы на SELECT * добилась цели. Я подозреваю, что смогу разрешить исключение, если уделил достаточно времени. Я также подозреваю, что это может вернуться снова, когда мы разрабатываем схему. Я бы предпочел не передавать такую ​​проблему обслуживания моим преемникам.

В общем, я думаю, что будет проще отфильтровать вывод XML. Мне нужно сжать его, сохранить и (позже) загрузить, распаковать и позже прочитать обратно в DataSet. Фильтрация XML - это всего лишь еще один шаг, и, что еще лучше, его нужно будет проводить раз в неделю или около того.

Могу ли я изменить поведение DataSet? Должен ли я фильтровать XML? Есть ли какой-то чертовски простой способ, которым я могу запросить почти все, но не совсем, все, не сталкиваясь с ConstraintException? Или мой подход совершенно неверный? Я очень ценю ваши предложения.

ОБНОВЛЕНИЕ: Оказывается, я набрал ConstraintException по простой причине: я забыл удалить строго типизированный столбец из одной таблицы данных. Нельзя было быть NULL. Когда я выбрал все столбцы , кроме этого столбца, значение было NULL, и ... и, да, это очень смущает, большое спасибо за вопрос.

1 Ответ

0 голосов
/ 12 января 2009

Это так же просто, как Table.Columns.Remove("UnwantedColumnName"). Я получил преимущество от Удивительно лаконичный ответ Мехрдада на другой вопрос . Я был в восторге, когда Table.Columns оказался податливым.

...