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

using System;
using System.Data;
using System.Data.OleDb;
using System.Collections;


namespace XLang.VideoOnline.Framework.Database.Access
{
/// <summary>
/// Summary description for ACCESS_DataViewsCollection.
/// </summary>
public class DataViewsCollection
{
private Database.Access.DataView[] _views;

private int _count;

public int Count
{
get
{
return _count;
}
}


public DataViewsCollection(OleDbConnection connection)
{
System.Data.DataTable schemaTable = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
new object[] {null, null,null, "VIEW"});

_count=schemaTable.Rows.Count;
_views=new Database.Access.DataView[_count];

for(int i=0;i<_count;i++)
{
_views[i]=new Database.Access.DataView(schemaTable.Rows[i][2].ToString());
}
}


public Database.Access.DataView this [int tableIndex]
{
get
{
return _views[tableIndex];
}
set
{
_views[tableIndex]=value;
}
}


public Database.Access.DataView this [string viewName]
{
get
{
return this [NameToIndex(viewName)];
}
set
{
this [NameToIndex(viewName)]=value;
}
}


private int NameToIndex(string viewName)
{
for(int i=0;i<_views.Length;i++)
{
if(_views[i].Name.ToUpper()==viewName.ToUpper())
return i;
}
return -1;
}



}
}