日期:2012-05-03  浏览次数:20487 次

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;
}
}
}