動態創建ACCESS數據庫

1.動態創建表結構,引入com中的二個動態庫,一個是ADOX,一個是ADODB二個dll,ADOX.dll和Interop.ADODB.dll

2.增加wfm中的按鈕,按鈕事件如下:

其中的m_path是當前程序運行的路徑,可以寫絕對路徑,目前是相對路徑。

private void button1_Click(object sender, EventArgs e)
        {
            string strdb = m_path + "\\DomTest.mdb";


            if (File.Exists("" + strdb + ""))  //先判斷當前是否存在該數據庫,沒有則創建
            {

                MessageBox.Show("當前存在數據庫,請先刪除掉", "信息提示");
                return;
            }
            ADOX.Catalog catalog = new Catalog();

            catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + strdb + "';Jet OLEDB:Engine Type=5");

            ADODB.Connection cn = new ADODB.Connection();

            cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + strdb + "'", null, null, -1);
            catalog.ActiveConnection = cn;

            ADOX.Table table = new ADOX.Table();
            table.Name = "Table1";

            ADOX.Column column = new ADOX.Column();
            column.ParentCatalog = catalog;
            column.Name = "RecordId";  //列名稱
            column.Type = DataTypeEnum.adInteger; //列數據類型
            column.DefinedSize = 9;//大小
            column.Properties["AutoIncrement"].Value = true; //是否是自動增加屬性
            table.Columns.Append(column, DataTypeEnum.adInteger, 9); //增加第一列
            table.Keys.Append("TablePrimaryKey", KeyTypeEnum.adKeyPrimary, column, null, null);
            table.Columns.Append("Name", DataTypeEnum.adVarWChar, 50); //增加第二列
            table.Columns.Append("Age", DataTypeEnum.adInteger, 9); //增加第三列
            table.Columns.Append("Birthday", DataTypeEnum.adDate, 0);//增加第四列
            catalog.Tables.Append(table); //增加當前的表

            cn.Close();
            MessageBox.Show("創建數據庫成功,位置存放在" + m_path, "信息提示");
        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章