C#创建Access
创建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>
/// <param name="strFilePath">数据库文件的路径</param>
public static bool CreateAccess(string strFilePath)
{
ADOX.Catalog clg = new Catalog();
if (!File.Exists(strFilePath))
{
try
{
//创建clg后,其数据库的锁定文件laccdb就一直存在(用以锁定此数据库文件)
clg.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";Jet OLEDB:Engine Type=5");
}
catch (System.Exception ex)
{
MessageBox.Show("数据库创建失败", "提示");
return false;
}
}
return true;
}
4:创建数据表。只创建一个数据库文件是没有意义的,创建表的本质是把创建的字段添加到数据表中。其具体代码如下:
/// <summary>
///在Access数据库中创建数据库表文件
/// </summary>
/// <param name="FilePath">数据库表文件全路径 </param>
/// <param name="tableName">表名</param>
/// <param name="colums">ADOX.Column对象数组</param>
public bool CreateAccessTable(string FilePath, string tableName, params ADOX.Column[] colums)
{
bool bolReturn = false;
ADOX.Catalog clg = new Catalog();
//数据库文件存在
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 (),"提示");
}
return bolReturn;
}
5:创建按钮的代码如下:
//创建按钮
private void btnCreat_Click(object sender, EventArgs e)
{
Access ac = new Access();
string FilePath = @"C:\Users\dwa1124\Desktop\自动创建的Access数据表.mdb";
ADOX.Column column1 = new Column();
ADOX.Column column2 = new Column();
ADOX.Column column3= new Column();
//设置字段名:名字
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("创建成功", "提示");
}
6:效果如图所示: