У нас есть база данных Oracle 8i, к которой у меня есть доступ только для чтения. Мы используем ODBC и MS Access для чтения данных из этой базы данных, поскольку у нас нет программного обеспечения Oracle Client. Это отлично работает.
Я использую ADO.NET с ASP.NET. Теперь я хочу отобразить список всех таблиц, которые я вижу в MS Access через ODBC.
Я пробовал это с подключением ODBC в C #. Я пробовал следующие запросы, чтобы получить список таблиц, которые не работали.
- выбрать имя_таблицы из dba_tables;
- выбрать имя таблицы из всех таблиц;
- выберите имя на вкладке;
Пожалуйста, помогите.
Спасибо за ответ. Я попробовал их без удачи. Все, что я хочу видеть, это тот же список таблиц, которые доступны в MS Access, когда я использую ODBC для создания связанных таблиц.
Это функция, которую я использую для достижения этой цели, которая на самом деле не работает так, как мне бы хотелось.
public static ArrayList GetODBCTablesList()
{
try
{
OdbcConnection DbConnection = new OdbcConnection("DSN=mydsn;UID=user1;PWD=pwd1;");
DbConnection.Open();
OdbcCommand DbCommand = DbConnection.CreateCommand();
DbCommand.CommandText = "select table_name from all_tables";
OdbcDataReader DbReader = DbCommand.ExecuteReader();
if (DbReader != null)
{
ArrayList TableList = new ArrayList();
while (DbReader.Read())
{
TableList.Add(DbReader.GetString(0));
}
DbReader.Close();
DbCommand.Dispose();
DbConnection.Close();
TableList.Sort();
TableList.TrimToSize();
return TableList;
}
DbCommand.Dispose();
DbConnection.Close();
return null;
}
catch (Exception ex)
{
LogHandler.WriteLogMessage(ex.GetBaseException().ToString(), true);
return null;
}
}
Это дает мне список таблиц, который не содержит все таблицы, которые я вижу, когда я связываю таблицы в MS Access с использованием ODBC.