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);
    }
}

时间: 2024-10-16 07:55:53

C# 动态创建Access数据库及表的相关文章

创建ACCESS数据库,并且创建表和数据。重点:关闭ACCESS数据库引用

/// <summary> /// 创建ACCESS数据库,并且创建表和数据 /// </summary> /// <param name="dictTable"></param> /// <param name="filePath"></param> /// <returns></returns> public int DataTableToAccess(Diction

.net 动态创建sql数据库表

//必须的命名空间 using System; using System.Data; using System.Data.SqlClient; //中间常规内容略 string tabName = "table1"; //声明要创建的表名,你也可以改为从textbox中获取: string sqlStr = "create table "; sqlStr += tabName + "( "; sqlStr += "col0 numeri

ASP入门(二)-创建Access数据库

通常来说,ASP程序是搭配Access数据库来使用的,因此在安装完ASP环境后,为了方便建立和管理数据库,我们还需要安装Access数据库. Access是Microsoft Office家族中的一员,主要提供了一个轻量级的数据库解决方案. 本人安装的是Office 2013版本的Access(SW_DVD5_Office_Professional_Plus_2013_64Bit_ChnSimp_MLF_X18-55285.ISO),普及率最高的还是Office 2003,如果你使用XP或者Wi

Access数据库多表连接查询

第一次在Access中写多表查询,就按照MS数据库中的写法,结果报语法错,原来Access的多表连接查询是不一样的 表A.B.C,A关联B,B关联C,均用ID键关联 一般写法:select * from A inner join B on A.ID=B.ID inner join C on B.ID=C.ID 此写法在Access中报错,Access对SQL语法理解方式不一样,它将两表连接后当作一个表然后再与第三个表连接,因此要改成 select * from (A inner join B o

C# 创建Access数据库及数据表的增删改查

//动态库引用 //Microsoft ActiveX Data Objects 6.0 Libraryy //Microsoft ADO Ext. 6.0 for DDL and Securty //可以在动态库管理器的COM中找到,但实际上就是ADODB.DLL和ADOX.DLL using System.Data.OleDb; using ADOX; 1 class ADOXer 2 { 3 /// <summary> 4 /// 激活Access数据库(创建或打开) 5 /// <

ADOX创建ACCESS数据库列名的数据类型

Type   属性             指示   Parameter.Field   或   Property   对象的操作类型或数据类型. 设置和返回值 设置或返回下列   DataTypeEnum   值之一.相应的   OLE   DB   类型标识符在下表的说明栏的括号中给出.有关   OLE   DB   数据类型的详细信息,请参阅第   10   章和<OLE   DB   程序员参考>的附录   A. 常量   说明   AdArray   与其他类型一起加入逻辑   OR

SQL创建/修改数据库、表

--创建表 create table 表(a1 varchar(10),a2 char(2)) --为表添加描述信息 EXECUTE sp_addextendedproperty N'MS_Description', '人员信息表', N'user', N'dbo', N'table', N'表', NULL, NULL --为字段a1添加描述信息 EXECUTE sp_addextendedproperty N'MS_Description', '姓名', N'user', N'dbo', N

创建oracle数据库的表空间、用户、目录、导入\导出文件等信息

1.创建表空间 create tablespace ts_aw logging datafile 'd:\app\Administrator\product\tablespace\ts_aw.dbf' size 10M autoextend on next 5M maxsize 20480M; 2.创建用户 create user hb identified by hb default tablespace ts_aw; 3.给用户授权限 grant connect,resource,dba t

C#获取Access数据库所有表

OleDbConnection conn = new OleDbConnection(connectionAccessString);  // connectionAccessString是连接字符串conn.Open();DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });conn.Close(); 原文地址:https: