创建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 = ;
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, -);
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)
{
ADOX.Column column = new ADOX.Column();
column.ParentCatalog = catalog;
column.Name = c.ColumnName;
column.Type = DataTypeEnum.adLongVarWChar;
//column.DefinedSize = 9;
column.Attributes = ColumnAttributesEnum.adColNullable; //允许列有NULL值
table.Columns.Append(column);
}
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;
} ArrayList array = new ArrayList();
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 - , );
sbColumns.Append(")"); foreach (DataRow row in item.Value.Rows)
{
sbValues.Append(sbColumns.ToString());
sbValues.Append("values( ");
foreach (DataColumn c in item.Value.Columns)
{
if (row[c.ColumnName] == DBNull.Value)
{
sbValues.Append("NULL,");
}
else
{
sbValues.Append("'" + CommUtils.DtRowFilter(row[c.ColumnName] + "") + "',");
}
}
sbValues.Remove(sbValues.Length - , );
sbValues.Append(");");
array.Add(sbValues.ToString()); sbValues.Clear();
}
} DBHelperAccess access = new DBHelperAccess(connStr);
access.ExecuteSqlTran(array);
access.Conn.Dispose();
access = null;
return count;
}
创建ACCESS数据库,并且创建表和数据。重点:关闭ACCESS数据库引用的更多相关文章
- SQL SERVER 将一个数据库中的表和数据复制到另一个数据库中
第一种情况:将A数据库.dbo.A表的数据追加到B数据库.dbo.B表中 (条件:此时B数据库中已创建好了B表) insert into B数据库.dbo.B表 select * from A数据库. ...
- 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...
- (转)分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...
- Oracle数据库--解决单张表中数据量巨大(大数据、数据量上百万级别,后查询,更新数据等耗时剧增)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/QQ578473688/article/details/54561397 思路1:采用备份表 备份表中 ...
- SQL Server 跨服务器 不同数据库之间复制表的数据
不同数据库之间复制表的数据的方法: 当表目标表存在时: insert into 目的数据库..表 select * from 源数据库..表 当目标表不存在时: select * into 目的数据库 ...
- SQLServer清空数据库中所有表的数据
今早同事跟进客户反馈的问题时,提了个要求,要求清空数据库中所有表的数据. 记得之前用游标遍历所有的表名 + exec 动态语句 truncate table 表名 实现过这个功能. 网上搜了下,有更简 ...
- 将MySQL一张表的数据迁移到MongoDB数据库的Java代码示例
Java代码: package com.zifeiy.snowflake.handle.etl.mongodb; import java.sql.Connection; import java.sql ...
- c#中动态创建textbox并且从数据库中获取表中数据添加到textbox中
private void FormLugOther_Load(object sender, EventArgs e) { foreach (string str in FormLug.FieldLis ...
- SQLSERVER:计算数据库中各个表的数据量和每行记录所占用空间
转:http://www.cnblogs.com/lyhabc/p/3828496.html CREATE TABLE #tablespaceinfo ( nameinfo ) , rowsinfo ...
- C#中 分层 显示数据库中多表的数据信息
如下图,要实现将三个表中的内容加载到同一个窗体中,该怎么来实现呢? 要实现上面的查询结果,我们就要从Student表中拿到学生姓名,从Subject表中拿到科目名称,从StudentResult表中拿 ...
随机推荐
- PHP -- Perl风格正则表达式
1.正则表达式作为一个匹配的模版,是由原子(普通字符,例如a-z),有特殊功能的字符(元字符,例如*.+ 和?等),以及模式修正符三个部分组成.2.在于Perl兼容的正则表达式函数中使用模式时一定要给 ...
- nginx 和 IIS 实现负载均衡
Nginx的作用和优点,这里不必多说,今天主要是nginx负载均衡实验,把做的步骤记录下来,作为一个学习笔记吧,也可以给大家做下参考. 1.Nginx安装 1.下载地址:http://nginx.or ...
- 5Hibernate入门----青软S2SH(笔记)
这里有个问题,就是这本书第五章的示例代码中的hibernate的jar包有问题,各种找不到类,把lib下的包后换成第六章里的包就好了. 换成5.1的就好了,而且如果只是简单使用hibernate的话, ...
- tyvj1106 登山
背景 在很久很久以前,有一个动物村庄,那里是猪的乐园(^_^),村民们勤劳.勇敢.善良.团结…… 不过有一天,最小的小小猪生病了,而这种病是极其罕见的,因此大家都没有储存这种药物.所以晴 ...
- 【重装系统】线上Linux服务器(2TB)分区参考方案
如果是线上服务器,假设它是 2TB 的 SATA 硬盘.8GB 内存,建议按如下方式进行分区: / 20480M(20G)(主分区) /boot 128M swap 10240M /data 2016 ...
- python 单步调试初探(未完待续)
pdb 调试: import pdb pdb.set_trace() pudb 调试: http://python.jobbole.com/82638/
- jsp 以及javabean内省技术
l JSP l JavaBean及内省 l EL表达式 1.1 上次课内容回顾 会话技术: Cookie:客户端技术.将数据保存在客户端浏览器上.Cookie是有大小和个数的限制. Session:服 ...
- php实验四
实验四 1.创建一个Person类,Person中包含三个属性name,age,wealth,分别设置为public,private,protected,再定义Person类的子类Student. 2 ...
- Python:Pycharm下无法导入安装好的第三方模块?
Pycharm下无法导入安装好的第三方模块requests? 在cmd下使用pip安装好requests模块后,可以使用import requests,但在Pycharm IDE下无法导入,出现如下错 ...
- CPrimerPlus第十一章中的“选择排序算法”学习
C Primer Plus第十一章字符串排序程序11.25中,涉及到“选择排序算法”,这也是找工作笔试或面试可能会遇到的题目,下面谈谈自己的理解. 举个例子:对数组num[5]={3,5,2,1,4} ...