第一步:需要引入使用access數據庫的動態庫。
動態庫目錄如下:(一般情況下)
C:/Program Files/Common Files/System/ado/msadox.dll
C:/Program Files/Common Files/System/ado/msjro.dll
第二步:應用如下:
using System.Data.OleDb;
第三步:創建數據庫,代碼如下:
public partial class FormMain : Form
{
private StringBuilder m_CreateTableSQL = null;
private OleDbConnectionStringBuilder m_connbd = null;
private OleDbConnection m_conn = null;
public FormMain()
{
InitializeComponent();
m_CreateTableSQL = new StringBuilder("");
m_CreateTableSQL.AppendLine("CREATE TABLE [tasklist](");
m_CreateTableSQL.AppendLine("[id] counter CONSTRAINT id PRIMARY KEY,");
m_CreateTableSQL.AppendLine("[weburl] text (254) NOT NULL,");
m_CreateTableSQL.AppendLine("[filename] text (254) NOT NULL,");
m_CreateTableSQL.AppendLine("[second] long NOT NULL,");
m_CreateTableSQL.AppendLine("[lasttime] float,");
m_CreateTableSQL.AppendLine("[nexttime] float,");
m_CreateTableSQL.AppendLine("[exemsg] text (254))");
listTask_AddHeader();
}
private void FormMain_Load(object sender, EventArgs e)
{
//
bool newdb = false;
string dbpath = Application.StartupPath + "//" + "snapshot.mdb";
string mdbpath = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbpath;
if (!File.Exists(dbpath))
{
ADOX.CatalogClass cat = new ADOX.CatalogClass();
cat.Create(mdbpath);
newdb = true;
}
// 創建數據表
m_connbd = new OleDbConnectionStringBuilder();
m_connbd.DataSource = dbpath;
m_connbd.Provider = "Microsoft.Jet.OLEDB.4.0";
m_conn = new OleDbConnection(m_connbd.ConnectionString);
DataSet dataset = new DataSet();
m_conn.Open();
if (newdb)
{
string strSQL = m_CreateTableSQL.ToString();
Console.WriteLine(strSQL);
OleDbCommand dbcmd = new OleDbCommand(strSQL, m_conn);
dbcmd.ExecuteNonQuery();
}
listTask_LoadTask();
}
private void listTask_LoadTask()
{
// 建立SQL查詢
OleDbCommand dbcmd = m_conn.CreateCommand();
// 輸入查詢語句
dbcmd.CommandText = "select * from tasklist order by id";
// 建立讀取
OleDbDataReader dbreader = dbcmd.ExecuteReader();
// 查詢並顯示數據
listTask.Items.Clear();
while (dbreader.Read())
{
TaskInformation task = new TaskInformation();
ListViewItem lt = new ListViewItem(dbreader["id"].ToString());
task.m_id = int.Parse(dbreader["id"].ToString());
lt.SubItems.Add(dbreader["weburl"].ToString());
task.m_weburl = dbreader["weburl"].ToString();
lt.SubItems.Add(dbreader["filename"].ToString());
task.m_filename = dbreader["filename"].ToString();
lt.SubItems.Add(dbreader["second"].ToString());
task.m_second = int.Parse(dbreader["second"].ToString());
lt.SubItems.Add(dbreader["lasttime"].ToString());
task.m_lasttime = 0; // long.Parse(dbreader["lasttime"].ToString());
lt.SubItems.Add(dbreader["nexttime"].ToString());
task.m_nexttime = 0; // long.Parse(dbreader["nexttime"].ToString());
lt.SubItems.Add(dbreader["exemsg"].ToString());
task.m_exemsg = dbreader["exemsg"].ToString();
lt.Tag = task;
listTask.Items.Add(lt);
}
//關閉連接
dbreader.Close();
}
private void btnAdd_Click(object sender, EventArgs e)
{
if (textFileName.Text.Length <= 0 || textUrl.Text.Length <= 0)
{
return;
}
string url = textUrl.Text;
string filename = textFileName.Text;
int second = int.Parse(this.textSecond.Text);
if(second<=0)
{
return;
}
string strSQL = string.Format("insert into [tasklist]([weburl],[filename],[second])values('{0}','{1}',{2})",
url,
filename,
second
);
Console.WriteLine(strSQL);
try
{
OleDbCommand dbcmd = new OleDbCommand(strSQL, m_conn);
dbcmd.ExecuteNonQuery();
}
catch (Exception ee)
{
Console.WriteLine(ee.ToString());
}
listTask_LoadTask();
}
}