Вы можете использовать метод GetSchema для получения всех таблиц в базе данных, а затем использовать адаптер данных для заполнения набора данных. Что-то вроде этого (я не знаю, если он компилирует, я просто вставить код и изменить его немного):
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.SqlClient");
DataTable tables = null;
DataSet database = new DataSet();
using (DbConnection connection = factory.CreateConnection())
{
connection.ConnectionString = "Data Source=(local);Initial Catalog=Northwind;Integrated Security=True";
string[] restrictions = new string[4];
// Catalog
restrictions[0] = "Northwind";
// Owner
restrictions[1] = "dbo";
// Table - We want all, so null
restrictions[2] = null;
// Table Type - Only tables and not views
restrictions[3] = "BASE TABLE";
connection.Open();
// Here is my list of tables
tables = connection.GetSchema("Tables", restrictions);
// fill the dataset with the table data
foreach (DataRow table in tables.Rows)
{
string tableName = table["TABLE_NAME"].ToString();
DbDataAdapter adapter = factory.CreateDataAdapter();
DbCommand command = factory.CreateCommand();
command.Connection = connection;
command.CommandType = CommandType.Text;
command.CommandText = "select * from [" + tableName + "]";
adapter.SelectCommand = command;
adapter.Fill(database, tableName);
}
}
EDIT:
Теперь я реструктурировать это немного, и теперь он работает как это должно. Использование DbConnection и DbProviderFactories для абстракции двигателя базы данных, я рекомендую использовать его, чтобы вы могли изменить движок базы данных, изменяя эту строку и строку соединения:
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OracleClient");
метод GetSchema будет retrive всех таблиц из базы данных к DataTable, а затем мы получаем все данные из каждой таблицы в DataSet с помощью DataAdapter.
Э-э, извините, но ваше редактирование не имеет смысла. Вы хотите получить данные * из * базы данных или * в * базу данных? –
Из-за этого я могу вернуть его, но чем больше я думаю об этом, тем меньше это возможно. – Malfist
Хорошо, тогда это ваш звонок, потому что я считаю, что вы дали нам слишком мало информации, чтобы ответить на ваш вопрос. Поскольку это то, что вы решили сделать, только вы можете узнать реальный ответ на свой вопрос. –