C# 使用access數據庫的一些經驗

第一步:需要引入使用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();
        }

 

}

發佈了33 篇原創文章 · 獲贊 4 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章