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

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