Sau*_*ron 13
您需要做的第一件事是获得Microsoft ADO Ext的COM引用.XX用于DDL和安全.XX表示您在计算机上碰巧遇到的任何版本.我曾经是2.7版本,但在Visual Studio 2008中,它已更新为6.0.
添加引用后,ADOX将添加到代码的using部分.
接下来,您将要为数据库创建目录.将您希望的文件名插入以下字符串并将其传递给CatalogClass.
CatalogClass cat = new CatalogClass();
string tmpStr;
string filename = "Sample.MDB";
tmpStr = "Provider=Microsoft.Jet.OLEDB.4.0;";
tmpStr += "Data Source=" + filename + ";Jet OLEDB:Engine Type=5";
cat.Create(tmpStr);
Run Code Online (Sandbox Code Playgroud)
下一步是为数据库创建表和列.这是一个非常简单的操作,如下例所示.
Table nTable = new Table();
nTable.Name = "PersonData";
nTable.Columns.Append("LastName", DataTypeEnum.adVarWChar, 25);
nTable.Columns.Append("FirstName", DataTypeEnum.adVarWChar, 25);
nTable.Columns.Append("Address 1", DataTypeEnum.adVarWChar, 45);
nTable.Columns.Append("Address 2", DataTypeEnum.adVarWChar, 45);
nTable.Columns.Append("City", DataTypeEnum.adVarWChar, 25);
nTable.Columns.Append("State", DataTypeEnum.adVarWChar, 2);
nTable.Columns.Append("Zip", DataTypeEnum.adVarWChar, 9);
cat.Tables.Append(nTable);
Run Code Online (Sandbox Code Playgroud)
最后一步非常重要,否则当您关闭应用程序时会出错.添加完所有表和列后,您需要以正确的顺序正确释放com对象.
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(nTable);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(cat.Tables);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(cat.ActiveConnection);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(cat);
Run Code Online (Sandbox Code Playgroud)
这就对了.您现在应该有一个可以写入的Access数据库.希望这可以帮助.
参考:John Russell Plant - 使用C#创建Access数据库
创建一个空白访问数据库并将其存储在资源文件中.
现在,只要您想使用它,从资源中获取该数据库并将其复制到您想要的任何位置,将其重命名为您想要的任何内容,并执行数据库设置脚本以创建默认表并在其中加载值.