1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C#使用VS 在程序加载时创建Access数据库和表

C#使用VS 在程序加载时创建Access数据库和表

时间:2020-08-29 01:05:37

相关推荐

C#使用VS 在程序加载时创建Access数据库和表

最近在用C#做一个时间管理系统,需要用到数据库。但由于之前都没有接触过C#,以至于走了很多弯路,所以做完之后顺便在这里记录一下。一来可以使自己养成写文档的习惯,二来也可以帮助到后面学习C#的朋友,可谓两全其美。

一.安装AccessDatabaseEngine驱动程序

为了创建并能够打开Access (以上版本的Access文件后缀名为.accdb)以上版本的数据库文件,我们在创建的时候需要用到Microsoft.ACE.OLEDB.12.0,所以这里我们得先安装一下AccessDatabaseEngine.exe这个应用程序。AccessDatabaseEngine可以在它的官网上下载到:

/zh-cn/download/details.aspx?id=23734

二.创建Access数据库文件

安装完AccessDatabaseEngine驱动程序后,接下来我们可以正式开始创建Access数据库文件了。

1.在项目引用中增加COM组件:MicrosoftADO Ext.6.0 for DDL and Security

2. usingADOX;

using System.IO; //DirectoryInfo需要用到using ADOX; //创建数据库需要using System.Data.OleDb; //连接Access数据库

3. 在窗体加载方法中创建数据库文件

ADOX.Catalog catalog = new Catalog();/* Microsoft.ACE.OLEDB.12.0 可以打开以及07以上版本的Access数据库文件 *//* Microsoft.ACE.OLEDB.12.0需要安装额外的应用(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);}

三.在创建好的数据库文件中添加表

创建表之前需要先连接数据库,需要添加引用 Microsoft ActiveX Data Object x.x(我用的是6.0) Library。

using System.Data.OleDb; //连接Access数据库

/* 创建表之前需要先连接数据库 *///需要添加引用 Microsoft ActiveX Data Object x.x(我用的是6.0) LibraryADODB.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();//创建列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); //设置主键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);//将创建的表添加进数据库try{catalog.Tables.Append(table);}catch (Exception ex){MessageBox.Show(ex.Message);}/* 关闭数据库连接 */cn.Close();MessageBox.Show("成功创建表 DailyRecord");

四.运行程序,观察结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。