创建Access
一、 通过Acccess软件创建Acccess表
1:新建一个空白数据库文件,并命名为“Database”。
2:右击“表一”的“设计试图”,并命名表名为“Administrator”,点击“确认”后,从创建“ID”、“用户名称”、“用户密码”,并分别设置器数据类型。
3:点击“保存”后,就可添加数据。
4:如需创建密码,则可点击“工具\安全性”,即可添加密码。
二、动态创建数据库及表名。
1:先添加两个COM组件引用,右击方案选择“引入参考”,加入Microsoft ActiveX Data Objects 2.8 Library和Microsoft ADO Ext. 2.8 for DDL and Security。
2:声明“using ADOX;“和”using System.IO;”
3:创建Access文件,代码如下:
///<summary>
///创建Access数据库
///</summary>
///<paramname="strFilePath">数据库文件的路径</param>
publicstaticboolCreateAccess(stringstrFilePath)
{
ADOX.Catalog clg =newCatalog();
if (!File.Exists(strFilePath))
{
try
{
//创建clg后,其数据库的锁定文件laccdb就一直存在(用以锁定此数据库文件)
clg.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +strFilePath + ";JetOLEDB:Engine Type=5");
}
catch(System.Exception ex)
{
MessageBox.Show("数据库创建失败","提示");
returnfalse;
}
}
returntrue;
}
4:创建数据表。只创建一个数据库文件是没有意义的,创建表的本质是把创建的字段添加到数据表中。其具体代码如下:
///<summary>
///在Access数据库中创建数据库表文件
///</summary>
///<paramname="FilePath">数据库表文件全路径</param>
///<paramname="tableName">表名</param>
///<paramname="colums">ADOX.Column对象数组</param>
publicboolCreateAccessTable(string FilePath, stringtableName,params ADOX.Column[]colums)
{
boolbolReturn =false;
ADOX.Catalog clg =newCatalog();
//数据库文件存在
try
{
if(CreateAccess(FilePath) ==true)
{
ADODB.Connection cn =new ADODB.Connection();//连接已创建的数据库文件
cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +FilePath,null,null, -1);
clg.ActiveConnection = cn;//打开已创建的数据库文件
ADOX.Table table1=new ADOX.Table();
table1.Name = tableName;//命名一张表Administrator
/*设置类型
//table1.Keys.Append("FirstTablePrimaryKey",KeyTypeEnum.adKeyPrimary, column, null, null);//定义主键
*/
foreach (var column in colums)
{
if(column.Name !=null)
{
table1.Columns.Append(column);//添加字段到表
}
}
clg.Tables.Append(table1);//添加表到数据库文件
cn.Close();
bolReturn =true;
}
}
catch (Exception ex)
{
MessageBox .Show ("创建失败\r\n" + ex.ToString (),"提示");
}
returnbolReturn;
}
5:创建按钮的代码如下:
//创建按钮
privatevoidbtnCreat_Click(object sender, EventArgs e)
{
Access ac =newAccess();
stringFilePath =@"C:\Users\dwa1124\Desktop\自动创建的Access数据表.mdb";
ADOX.Column column1=newColumn();
ADOX.Column column2=newColumn();
ADOX.Columncolumn3=newColumn();
//设置字段名:名字
column1.Type = ADOX.DataTypeEnum.adVarWChar;//设置类型为
column1.DefinedSize = 255;//设置长度
column1.Name ="名字";//设置字段名
//设置字段名:性别
column2.Type = ADOX.DataTypeEnum.adVarWChar;//设置类型为
column2.DefinedSize = 255;//设置长度
column2.Name ="性别";//设置字段名
//设置字段名:年龄
column3.Type = ADOX.DataTypeEnum.adInteger;//设置类型为
column3.DefinedSize = 9;//设置长度
column3.Name ="年龄";//设置字段名
//column.Properties["AutoIncrement"].Value= true;//设置自动增长
if(ac.CreateAccessTable(FilePath,"Administrator", column1, column2, column3))
{
MessageBox.Show("创建成功","提示");
}