C#动态创建Access数据库及表的方法
本文实例讲述了c#动态创建access数据库及表的方法。分享给大家供大家参考。
具体实现方法如下:
//添加两个com组件引用
//microsoft ado ext. 2.8 for ddl and security
//microsoft activex data objects 2.8 library
using system;
using system.collections.generic;
using system.linq;
using system.text;
using adox;
using system.io;
namespace webrequesttest.common
{
public static class accessdbhelper
{
/// <summary>
/// 创建access数据库
/// </summary>
/// <param name="filepath">数据库文件的全路径,如 d:\\newdb.mdb</param>
public static bool createaccessdb(string filepath)
{
adox.catalog catalog = new catalog();
if (!file.exists(filepath))
{
try
{
catalog.create("provider=microsoft.jet.oledb.4.0;ddata source=" + filepath + ";jet oledb:engine type=5");
}
catch (system.exception ex)
{
return false;
}
}
return true;
}
/// <summary>
/// 在access数据库中创建表
/// </summary>
/// <param name="filepath">数据库表文件全路径如d:\\newdb.mdb 没有则创建 </param>
/// <param name="tablename">表名</param>
/// <param name="colums">adox.column对象数组</param>
public static void createaccesstable(string filepath, string tablename, params adox.column[] colums)
{
adox.catalog catalog = new catalog();
//数据库文件不存在则创建
if (!file.exists(filepath))
{
try
{
catalog.create("provider=microsoft.jet.oledb.4.0;data source=" + filepath + ";jet oledb:engine type=5");
}
catch (system.exception ex)
{
}
}
adodb.connection cn = new adodb.connection();
cn.open("provider=microsoft.jet.oledb.4.0;data source=" + filepath, null, null, -1);
catalog.activeconnection = cn;
adox.table table = new adox.table();
table.name = tablename;
foreach (var column in colums)
{
table.columns.append(column);
}
// column.parentcatalog = catalog;
//column.properties["autoincrement"].value = true; //设置自动增长
//table.keys.append("firsttableprimarykey", keytypeenum.adkeyprimary, column, null, null); //定义主键
catalog.tables.append(table);
cn.close();
}
//========================================================================================调用
//adox.column[] columns = {
// new adox.column(){name="id",type=datatypeenum.adinteger,definedsize=9},
// new adox.column(){name="col1",type=datatypeenum.adwchar,definedsize=50},
// new adox.column(){name="col2",type=datatypeenum.adlongvarchar,definedsize=50}
// };
// accessdbhelper.createaccesstable("d:\\111.mdb", "testtable", columns);
}
}
希望本文所述对大家的c#程序设计有所帮助。