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

 更新时间:2014年12月26日 09:41:32   投稿:shichen2014  
这篇文章主要介绍了C#动态创建Access数据库及表的方法,以实例形式分析了创建access数据库及在access数据库中建表的完整过程,是非常实用的技巧,需要的朋友可以参考下

本文实例讲述了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#程序设计有所帮助。

相关文章

  • C# 多线程读取注册表,加载至TreeView

    C# 多线程读取注册表,加载至TreeView

    C#下多线程读取注册表,加载至TreeView的实现代码。
    2009-09-09
  • C#使用dir命令实现文件搜索功能示例

    C#使用dir命令实现文件搜索功能示例

    这篇文章主要介绍了C#使用dir命令实现文件搜索功能,结合具体实例形式分析了C#调用与使用cmd命令相关操作技巧,需要的朋友可以参考下
    2017-07-07
  • 详解c#与js的rsa加密互通

    详解c#与js的rsa加密互通

    这篇文章主要介绍了详解c#与js的rsa加密互通,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C#使用csvhelper实现csv的基本操作

    C#使用csvhelper实现csv的基本操作

    CsvHelper 是一个用于读写 CSV 文件的.NET库,极其快速,灵活且易于使用,CsvHelper 建立在.NET Standard 2.0 之上,几乎可以在任何地方运行,本文给大家介绍了C#使用csvhelper实现csv的基本操作,需要的朋友可以参考下
    2024-07-07
  • C# 泛型深入理解介绍

    C# 泛型深入理解介绍

    在上一个专题中介绍了C#2.0 中引入泛型的原因以及有了泛型后所带来的好处,然而上一专题相当于是介绍了泛型的一些基本知识的,对于泛型的性能为什么会比非泛型的性能高却没有给出理由,所以在这个专题就中将会介绍原因和一些关于泛型的其他知识
    2012-11-11
  • C# 调用WebService的方法

    C# 调用WebService的方法

    这篇文章主要介绍了C# 调用WebService的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08
  • c# WPF中CheckBox样式的使用总结

    c# WPF中CheckBox样式的使用总结

    这篇文章主要介绍了c# WPF中CheckBox样式的使用总结,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C#实现简单的计算器功能完整实例

    C#实现简单的计算器功能完整实例

    这篇文章主要介绍了C#实现简单的计算器功能,结合完整实例形式分析了C#实现常见的数学运算、进制转换等相关操作技巧与界面布局方法,需要的朋友可以参考下
    2017-08-08
  • C#中实体类与XML相互转换方式

    C#中实体类与XML相互转换方式

    这篇文章主要介绍了C#中实体类与XML相互转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • C#多线程学习之(一)多线程的相关概念分析

    C#多线程学习之(一)多线程的相关概念分析

    这篇文章主要介绍了C#多线程学习之多线程的相关概念,涉及C#中多线程的相关概念与使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04

最新评论