生活随笔
收集整理的這篇文章主要介紹了
C#使用VS 2010在程序加载时创建Access数据库和表
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
最近在用C#做一個時間管理系統(tǒng),需要用到數(shù)據(jù)庫。但由于之前都沒有接觸過C#,以至于走了很多彎路,所以做完之后順便在這里記錄一下。一來可以使自己養(yǎng)成寫文檔的習(xí)慣,二來也可以幫助到后面學(xué)習(xí)C#的朋友,可謂兩全其美。
一.安裝AccessDatabaseEngine驅(qū)動程序
? ? 為了創(chuàng)建并能夠打開Access 2007(2007以上版本的Access文件后綴名為.accdb)以上版本的數(shù)據(jù)庫文件,我們在創(chuàng)建的時候需要用到Microsoft.ACE.OLEDB.12.0,所以這里我們得先安裝一下AccessDatabaseEngine.exe這個應(yīng)用程序。AccessDatabaseEngine可以在它的官網(wǎng)上下載到:
https://www.microsoft.com/zh-cn/download/details.aspx?id=23734
?
二.創(chuàng)建Access數(shù)據(jù)庫文件
? ? 安裝完AccessDatabaseEngine驅(qū)動程序后,接下來我們可以正式開始創(chuàng)建Access數(shù)據(jù)庫文件了。
? ? 1.在項目引用中增加COM組件:MicrosoftADO Ext.6.0 for DDL and Security
? ? 2. usingADOX;
using System.IO; //DirectoryInfo需要用到
using ADOX; //創(chuàng)建數(shù)據(jù)庫需要
using System.Data.OleDb; //連接Access數(shù)據(jù)庫
? ? 3. 在窗體加載方法中創(chuàng)建數(shù)據(jù)庫文件?
ADOX.Catalog catalog = new Catalog();/* Microsoft.ACE.OLEDB.12.0 可以打開2007以及07以上版本的Access數(shù)據(jù)庫文件 *//* Microsoft.ACE.OLEDB.12.0需要安裝額外的應(yīng)用(AccessDatabaseEngine.exe)才能支持 */
string connStr = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath);try{catalog.Create(connStr);
}
catch (Exception ex){MessageBox.Show(ex.Message);
}
三.在創(chuàng)建好的數(shù)據(jù)庫文件中添加表
? ? 創(chuàng)建表之前需要先連接數(shù)據(jù)庫,需要添加引用 Microsoft ActiveX Data Object x.x(我用的是6.0) Library。
using System.Data.OleDb; //連接Access數(shù)據(jù)庫
/* 創(chuàng)建表之前需要先連接數(shù)據(jù)庫 */
//需要添加引用 Microsoft ActiveX Data Object x.x(我用的是6.0) Library
ADODB.Connection cn = new ADODB.Connection();
try{cn.Open(connStr, null, null, -1);
}
catch (Exception ex){MessageBox.Show(ex.Message);
}
catalog.ActiveConnection = cn;/* 建立新表 */
/* 序號 日期 起始時間 終止時間 時長 時間類別 事項 成就值 */
ADOX.Table table = new ADOX.Table();
table.Name = "DailyRecord"; //表名ADOX.Column idColumn = new ADOX.Column(); //創(chuàng)建列
idColumn.ParentCatalog = catalog;
idColumn.Type = ADOX.DataTypeEnum.adInteger; //整型
idColumn.Name = "序號"; //列名
idColumn.DefinedSize = 32;
idColumn.Properties["AutoIncrement"].Value = true; //自動增長table.Columns.Append(idColumn); //向表中添加列
table.Keys.Append("FirstTablePrimaryKey", KeyTypeEnum.adKeyPrimary, idColumn, null, null); //設(shè)置主鍵table.Columns.Append("日期", DataTypeEnum.adDate, 0);
table.Columns.Append("起始時間", DataTypeEnum.adSingle, 0);
table.Columns.Append("終止時間", DataTypeEnum.adSingle, 0);
table.Columns.Append("時長", DataTypeEnum.adInteger, 0);
table.Columns.Append("時間類別", DataTypeEnum.adWChar, 0);
table.Columns.Append("事項", DataTypeEnum.adWChar, 0);
table.Columns.Append("成就值", DataTypeEnum.adInteger, 0);//將創(chuàng)建的表添加進(jìn)數(shù)據(jù)庫
try{catalog.Tables.Append(table);
}
catch (Exception ex){MessageBox.Show(ex.Message);
}
/* 關(guān)閉數(shù)據(jù)庫連接 */
cn.Close();
MessageBox.Show("成功創(chuàng)建表 DailyRecord");
四.運行程序,觀察結(jié)果
總結(jié)
以上是生活随笔為你收集整理的C#使用VS 2010在程序加载时创建Access数据库和表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。