欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#动态创建Access数据库及表的方法

程序员文章站 2023-12-14 14:46:16
本文实例讲述了c#动态创建access数据库及表的方法。分享给大家供大家参考。 具体实现方法如下: 复制代码 代码如下: //添加两个com组件引用 //micro...

本文实例讲述了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);
    }
}

希望本文所述对大家的c#程序设计有所帮助。

上一篇:

下一篇: