创建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表中拿 ...
随机推荐
- POJ 3349 Snowflake Snow Snowflakes(简单哈希)
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 39324 Accep ...
- SDL绑定播放窗口 及 视频窗口缩放
绑定播放窗口 必须在Sdl.SDL_Init之前执行 Sdl.SDL_putenv 同时SDL_SetVideoMode里播放窗口长宽不能大于绑定窗口的长宽 int i = Sdl.SDL_puten ...
- Google Maps API V3 之绘图库 信息窗口
Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...
- 数据导入导出Oracle数据库
临近春节,接到了一个导入数据的任务,在Linux客户端中的数据有50G,大约3亿3千万行: 刚开始很天真,把原始的txt/csv文件用sh脚本转化成了oralce 的insert into 语句,然后 ...
- JMS开发步骤和持久化/非持久化Topic消息
------------------------------------------------ 开发一个JMS的基本步骤如下: 1.创建一个JMS connection factory 2.通过co ...
- XMPP作为一个工具的意义
学习XMPP就是拥有位当前应用程序添加实时,推送,社交功能所需的工具.虽然浏览器不支持XMPP通讯,但是我们可以通过BOSH技术解决. 一个XMPP网络包含如下 服务器:为XMPP节提供路由,是否支持 ...
- vijos1531 食物链
背景 安徽省芜湖市第二十七中学测试题 NOI 2001 食物链(eat) Description:OfficialData:OfficialProgram:JackDavid127 描述 动物王国中有 ...
- nyoj 106背包问题(贪心专题)
背包问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w< ...
- Windows平台下Qt中glut库的使用
用Qt中的QGLWidget窗体类中是不包括glut工具库的,难怪在myGLWidget(在我的程序中是QGLWidget的派生类)中绘制实心球体是说“glutSolidSphere”: 找不到标识符 ...
- CentOS6.3编译安装Nginx1.4.7 + MySQL5.5.25a + PHP5.3.28
[准备工作] #在编译安装lnmp之前,首先先卸载已存在的rpm包. rpm -e httpd rpm -e mysql rpm -e php yum -y remove httpd yum -y r ...