C#动态创建Access数据库及表的方法
本文实例讲述了C#动态创建Access数据库及表的方法。分享给大家供大家参考。
具体实现方法如下:
//添加两个com组件引用 //MicrosoftADOExt.2.8forDDLandSecurity //MicrosoftActiveXDataObjects2.8Library
usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingADOX; usingSystem.IO;
namespaceWebRequestTest.Common { publicstaticclassAccessDbHelper { ///<summary> ///创建access数据库 ///</summary> ///<paramname="filePath">数据库文件的全路径,如D:\\NewDb.mdb</param> publicstaticboolCreateAccessDb(stringfilePath) { ADOX.Catalogcatalog=newCatalog(); if(!File.Exists(filePath)) { try { catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;DDataSource="+filePath+";JetOLEDB:EngineType=5"); } catch(System.Exceptionex) { returnfalse; } } returntrue; }
///<summary> ///在access数据库中创建表 ///</summary> ///<paramname="filePath">数据库表文件全路径如D:\\NewDb.mdb没有则创建</param> ///<paramname="tableName">表名</param> ///<paramname="colums">ADOX.Column对象数组</param> publicstaticvoidCreateAccessTable(stringfilePath,stringtableName,paramsADOX.Column[]colums) { ADOX.Catalogcatalog=newCatalog(); //数据库文件不存在则创建 if(!File.Exists(filePath)) { try { catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+filePath+";JetOLEDB:EngineType=5"); } catch(System.Exceptionex) {
} } ADODB.Connectioncn=newADODB.Connection(); cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+filePath,null,null,-1); catalog.ActiveConnection=cn; ADOX.Tabletable=newADOX.Table(); table.Name=tableName; foreach(varcolumnincolums) { 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={ // newADOX.Column(){Name="id",Type=DataTypeEnum.adInteger,DefinedSize=9}, // newADOX.Column(){Name="col1",Type=DataTypeEnum.adWChar,DefinedSize=50}, // newADOX.Column(){Name="col2",Type=DataTypeEnum.adLongVarChar,DefinedSize=50} // }; //AccessDbHelper.CreateAccessTable("d:\\111.mdb","testTable",columns); } }