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

本文详细介绍如何使用C#创建Access数据库及表结构,包括安装AccessDatabaseEngine驱动、创建数据库文件及添加表等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

一.安装AccessDatabaseEngine驱动程序

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

https://www.microsoft.com/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 可以打开2007以及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) 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();     //创建列
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");


四.运行程序,观察结果












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值