ACCESS数据库访问组件(一)ACCESS_Database.cs
using System;
using System.Data;
using System.Data.OleDb;
using System.Collections;
namespace XLang.VideoOnline.Framework.Database.Access
{
/// <summary>
/// XLang.VideoOnline.Framework.Database is designed for create, update, insert and delete operations.
/// </summary>
public class Access
{
private OleDbConnection _connection;
private string _connectionString;
private string _databaseName;
private Database.Access.DataTablesCollection _tables;
private Database.Access.DataViewsCollection _views;
private DateTime _creationTime;
private DateTime _lastAccessTime;
private DateTime _lastWriteTime;
public string Name
{
get
{
return _databaseName;
}
}
public Database.Access.DataTablesCollection Tables
{
get
{
return _tables;
}
}
public Database.Access.DataViewsCollection Views
{
get
{
return _views;
}
}
public DateTime CreationTime
{
get
{
return _creationTime;
}
}
public DateTime LastAccessTime
{
get
{
return _lastAccessTime;
}
}
public DateTime LastWriteTime
{
get
{
return _lastWriteTime;
}
}
public Access()
{
}
public Access(string databaseName)
{
string delimStr = " :\\./";
char [] delimiter = delimStr.ToCharArray();
string [] split = null;
split=databaseName.Split(delimiter);
_databaseName = split[split.Length-2];
_connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+databaseName;
_creationTime = System.IO.File.GetCreationTime(databaseName);
_lastAccessTime = System.IO.File.GetLastAccessTime(databaseName);
_lastWriteTime = System.IO.File.GetLastWriteTime(databaseName);
_connection = new OleDbConnection( _connectionString );
try
{
if(!(_connection.State==ConnectionState.Open)) _connection.Open();
_tables=new Database.Access.DataTablesCollection(_connection);
_views=new DataViewsCollection(_connection);
}
catch(Exception e)
{
System.Web.HttpContext.Current.Response.Write("<br><font color=#ff0000>ACCESS_Database_Access:</font>"+e.Message+"<br>");
}
finally
{
if(_connection.State==ConnectionState.Open) _connection.Close();
}
}
public bool ExecuteCommand(string commandString,CommandType commandType)
{
switch(commandType)
{
case CommandType.Create:
return Create(commandString);
case CommandType.Delete:
return Delete(commandString);
case CommandType.Insert:
return Insert(commandString);
case CommandType.Select:
return Select(commandString);
case CommandType.Join:
return Join(commandString);
case CommandType.Update:
return Update(commandString);
case CommandType.View:
return View(commandString);
case CommandType.Other:
return Other(commandString);
default:
break;
}
return true;
}
private bool Create(string commandString)
{
return CreateDeleteInsertUpdate(commandString);
}
private bool Delete(string commandString)
{
return CreateDeleteInsertUpdate(commandString);
}
private bool Insert(string commandString)
{
return Creat