using System; using System.Data; using System.Data.OleDb; using System.Collections;
namespace XLang.VideoOnline.Framework.Database.Access { /// <summary> /// Summary description for ACCESS_DataTablesCollection. /// </summary> public class DataTablesCollection { private Database.Access.DataTable[] _tables;
private int _count;
public int Count { get { return _count; } }
public DataTablesCollection(OleDbConnection connection) { System.Data.DataTable schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] {null, null, null, "TABLE"});
_count=schemaTable.Rows.Count+1; _tables=new Database.Access.DataTable[_count];
for(int i=0;i<_count-1;i++) { _tables[i]=new Database.Access.DataTable(schemaTable.Rows[i][2].ToString()); } _tables[_count-1]=new Database.Access.DataTable("temp"); }
public Database.Access.DataTable this [int tableIndex] { get { return _tables[tableIndex]; //return this[tableIndex]; } set { _tables[tableIndex]=value; //this[tableIndex]=value; } }
public Database.Access.DataTable this [string tableName] { get { return this [NameToIndex(tableName)]; //return this[tableName]; } set { this [NameToIndex(tableName)]=value; //this[tableName]=value; } }
private int NameToIndex(string tableName) { for(int i=0;i<_tables.Length;i++) { if(_tables[i].Name.ToUpper()==tableName.ToUpper()) return i; } return -1; } } }

|