首页 > 代码库 > 创建ACCESS数据库,并且创建表和数据。重点:关闭ACCESS数据库引用
创建ACCESS数据库,并且创建表和数据。重点:关闭ACCESS数据库引用
/// <summary> /// 创建ACCESS数据库,并且创建表和数据 /// </summary> /// <param name="dictTable"></param> /// <param name="filePath"></param> /// <returns></returns> public int DataTableToAccess(Dictionary<string, DataTable> dictTable, string filePath) { int count = 0; string connStr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Jet OLEDB:Engine Type=5", filePath); try { ADOX.Catalog catalog = new ADOX.Catalog(); catalog.Create(connStr); //创建ACCESS数据库 ADODB.Connection cn = new ADODB.Connection(); cn.Open(connStr, null, null, -1); catalog.ActiveConnection = cn; foreach (var item in dictTable) { ADOX.Table table = new ADOX.Table(); table.Name = item.Key; foreach (DataColumn c in item.Value.Columns) { table.Columns.Append(c.ColumnName, DataTypeEnum.adLongVarWChar); } catalog.Tables.Append(table); } #region 释放COM引用的对象 【该代码块在Release模式下运行有效】 System.Runtime.InteropServices.Marshal.ReleaseComObject(catalog); System.Runtime.InteropServices.Marshal.FinalReleaseComObject(catalog); catalog = null; cn.Close(); GC.WaitForPendingFinalizers(); GC.Collect(); #endregion } catch (Exception ex) { throw ex; } foreach (var item in dictTable) { StringBuilder sbColumns = new StringBuilder(); StringBuilder sbValues = new StringBuilder(); sbColumns.Append("insert into [" + item.Key + "]("); foreach (DataColumn c in item.Value.Columns) { sbColumns.Append("[" + c.ColumnName + "],"); } sbColumns.Remove(sbColumns.Length - 1, 1); sbColumns.Append(")"); foreach (DataRow row in item.Value.Rows) { sbValues.Append(sbColumns.ToString()); sbValues.Append("values( "); foreach (DataColumn c in item.Value.Columns) { sbValues.Append("‘" + CommUtils.DtRowFilter(row[c.ColumnName] + "") + "‘,"); } sbValues.Remove(sbValues.Length - 1, 1); sbValues.Append(");"); sbValues.AppendLine(""); //using (DBHelperAccess access = new DBHelperAccess(connStr)) //{ DBHelperAccess access = new DBHelperAccess(connStr); //DBHelperAccess access = new DBHelperAccess(connStr); access.ExecuteSQLNonquery(sbValues.ToString()); access.Conn.Dispose(); access = null; //} sbValues.Clear(); } GC.Collect(); } return count; }
创建ACCESS数据库,并且创建表和数据。重点:关闭ACCESS数据库引用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。