SchemaTable
あなたが説明したように(100 x 50 = 5000)、フィールドの全体的な量が非常に多いため、次を使用して最初に読み取ると役立つ場合がありますOleDb
。
リスト 1. SchemaTable を取得する (オプション)
static DataTable GetSchemaTable(string connectionString)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();
DataTable schemaTable =
connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
new object[] { null, null, null, "TABLE" });
return schemaTable;
}
}
リスト 2. MS Access データベース テーブルからデータを読み取る
MS Access データベース テーブルからデータを読み取り、オブジェクトを使用して入力DataTable
する実際の手順を以下に示します (構文に反映されているように、最初はカスタム DB 操作クラスにカプセル化されているため、必要に応じて変更できます)。DataSet
DataAdapter
OleDb
#region DataSet, DataAdapter, DataTable
internal DataSet dataSet;
internal OleDbDataAdapter dataAdapter;
internal DataTable dataTable;
private OleDbConnection connection;
#endregion
internal GetData(string SelectQuery, string ConnectionString)
{
try
{
#region Create Data Objects: Connection, DataAdapter, DataSet, DataTable
// use OleDb Connection to MS Access DB
connection = new OleDbConnection(ConnectionString);
connection.Open();
// create new DataAdapter on OleDb Connection and Select Query text
dataAdapter = new OleDbDataAdapter();
dataAdapter.SelectCommand = new OleDbCommand(SelectQuery, connection);
// create DataSet
dataSet = new DataSet();
// retrieve TableSchema
// DataTable[] _dataTablesSchema = _dataAdapter.FillSchema(_dataSet, SchemaType.Source, "{TABLE NAME}");
DataTable[] _dataTablesSchema = dataAdapter.FillSchema(dataSet, SchemaType.Source);
// there is only one Table in DataSet, so use 0-index
dataTable = _dataTablesSchema[0];
// use DataAdapter to Fill Dataset
dataAdapter.Fill(dataTable);
// OPTIONAL: use OleDbCommandBuilder to build a complete set of CRUD commands
OleDbCommandBuilder builder = new OleDbCommandBuilder(dataAdapter);
// Update, Insert and Delete Commands
dataAdapter.UpdateCommand = builder.GetUpdateCommand();
dataAdapter.InsertCommand = builder.GetInsertCommand();
dataAdapter.DeleteCommand = builder.GetDeleteCommand();
#endregion
connection.Close();
}
catch {throw; }
}
詳細については、MSDN の投稿を参照してください: リンクhttp://msdn.microsoft.com/en-us/library/system.data.oledb.oledbconnection.getoledbschematable.aspx
注: 最初のステップ (リスト 1) はオプションです。OleDb
どちらの手順も、MS Access DB で操作するオブジェクトに基づいています。他の DB タイプ (MS SQL サーバーなど) の場合は、さまざまなオブジェクトのセット (SQLConnection
など)があります。