Пусть DataAdapter получит новую версию модифицированной таблицы - PullRequest
0 голосов
/ 30 декабря 2018

У меня есть приложение .Net, которое загружает таблицу из базы данных Oracle.Код должен загружать данные динамически (из любой таблицы).

Мой код очень прост

    Dim Command As OracleCommand
    Dim DataAdapter As OracleDataAdapter
    Dim DataSet as DataSet

    Command = New OracleCommand("Select * from MyTable", Me.Connection) 'The connection object is set somewhere else
    Command.CommandType = CommandType.Text

    DataAdapter = New OracleDataAdapter(Command)
    DataAdapter.FillSchema(DataSet, SchemaType.Source, "MyTable")
    DataAdapter.Fill(DataSet, "MyTable")

При первом выполнении этого кода все работает нормально.Однако, если я добавлю поле в таблицу MyTable со стороны базы данных с помощью средства разработки SQL, новое поле не будет доступно в таблице, возвращаемой DataAdapter, и мне нужно перезапустить приложение, чтобы оно было учтено.

Есть ли какое-либо кэширование где-нибудь в DataAdapter или OracleCommand для очистки?

Кто-нибудь знает, как решить эту проблему, пожалуйста?

Спасибо, ура,

1 Ответ

0 голосов
/ 23 января 2019

Вот ответ:

OracleDataAdapter имеет свойство: Requery

Если для него установлено значение true, каждый последующий вызов Fill повторно выполняет запрос и заполняет DataSet.

Источник: https://docs.oracle.com/en/database/oracle/oracle-database/18/odpnt/featRequery.html#GUID-D7A62257-0676-4B30-A85A-AEBD62D904B2

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