搜索
首页数据库mysql教程C#操作Access数据库,收集了3篇经典文章

【导言】因为开发制作一个小工具数据转移工具,需要用C#操作Access数据库。所以上网搜索了一下,有三篇文章内容比较好,特收录如下。 另有一份大礼送给网友:《ADO 程序员参考》 另一个链接:CSDN下载-ADO程序员参考中文版 一、创建数据库的基本方法: 原作

【导言】因为开发制作一个小工具“数据转移工具”,需要用C#操作Access数据库。所以上网搜索了一下,有三篇文章内容比较好,特收录如下。

另有一份大礼送给网友:《ADO 程序员参考》 

 另一个链接:CSDN下载-ADO程序员参考中文版

 

一、创建数据库的基本方法:

原作者迭失

microsoft ado ext.2.8
 
我想利用C#创建一个ACCESS数据库文件(A.mdb)。请问用什么办法可以实现。
A.mdb文件是原来没有的,程序需要创建一个然后往里面写数据!

1.
※新建工程
※进入解决方案->引用->添加引用

->选择-> OK
※编码
//命令行工程代码如下
using System;
using ADOX;
namespace ConsoleApplication1
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
ADOX.CatalogClass cat = new ADOX.CatalogClass();
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=D:\\AccessDB\\NewMDB.mdb;" +
"Jet OLEDB:Engine Type=5");
Console.WriteLine("Database Created Successfully");
cat = null;
}
}
}
//asp.net代码如下
private void Page_Load(object sender, System.EventArgs e)
{
ADOX.CatalogClass cat = new ADOX.CatalogClass();
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=C://database//NewMDB.mdb;" +
"Jet OLEDB:Engine Type=5");
cat = null;
Response.Write("OK");
2.用sqlserver 的代码如下
SqlConnection conn=new SqlConnection("Server=lemoncat007;Uid=sa;Pwd=gtt");
conn.Open();
SqlCommand cmd=new SqlCommand("create database test",conn);
cmd.ExecuteNonQuery();
3 也可以创建一个Procedure 将创建数据库的语句写到里面然后执行
 

二、创建数据库,并且添表和添加字段

原文《用C#动态创建Access数据库》

记得以前要动态的创建Access数据库的mdb文件都是采用DAO,用VC开发,一大堆的API,很是麻烦。现在好像也鲜有人提起DAO。其实动态的创建mdb数据的最简单的方法还是ADOX。
      用ADOX创建access数据库方法很简单,只需要new一个Catalog对象,然后调用它的Create方法就可以了,如下:

C#操作Access数据库,收集了3篇经典文章ADOX.Catalog catalog = new Catalog();
C#操作Access数据库,收集了3篇经典文章catalog.Create(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb;Jet OLEDB:Engine Type=5");
C#操作Access数据库,收集了3篇经典文章


      仅仅两行代码就搞定了。下来我主要介绍一下在c#中的实现细节。首先你要添加引用,在“Add reference”对话框里切换到Com页面,选择“Microsoft ADO Ext. 2.8 for DDL and Security”,然后点击OK。在文件的开头using ADOX名字空间。然后添加如上面所示的代码就可以成功的创建Access 数据库了,代码如下:

C#操作Access数据库,收集了3篇经典文章using System;
C#操作Access数据库,收集了3篇经典文章
using System.Collections.Generic;
C#操作Access数据库,收集了3篇经典文章
using System.Text;
C#操作Access数据库,收集了3篇经典文章
using ADOX;
C#操作Access数据库,收集了3篇经典文章
C#操作Access数据库,收集了3篇经典文章
namespace testADOX
C#操作Access数据库,收集了3篇经典文章C#操作Access数据库,收集了3篇经典文章
C#操作Access数据库,收集了3篇经典文章{
C#操作Access数据库,收集了3篇经典文章    
class Program
C#操作Access数据库,收集了3篇经典文章C#操作Access数据库,收集了3篇经典文章    
C#操作Access数据库,收集了3篇经典文章{
C#操作Access数据库,收集了3篇经典文章        
static void Main(string[] args)
C#操作Access数据库,收集了3篇经典文章C#操作Access数据库,收集了3篇经典文章        
C#操作Access数据库,收集了3篇经典文章{
C#操作Access数据库,收集了3篇经典文章            ADOX.Catalog catalog 
= new Catalog();
C#操作Access数据库,收集了3篇经典文章            catalog.Create(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb;Jet OLEDB:Engine Type=5");
C#操作Access数据库,收集了3篇经典文章        }

C#操作Access数据库,收集了3篇经典文章    }

C#操作Access数据库,收集了3篇经典文章}

C#操作Access数据库,收集了3篇经典文章


      创建了数据库文件是没有实际用处的,我们还要创建表。在创建表之前,我们必须连接目标数据库,用来连接数据的桥梁居然是ADO的Connection对象,所以我们不得不再次添加对ADO的应用,在添加引用对话框中切换到Com页面,选择“Microsoft ActiveX Data Objects 2.8 Library”,然后点击OK。下边是创建表的完整代码:

C#操作Access数据库,收集了3篇经典文章using System;
C#操作Access数据库,收集了3篇经典文章
using System.Collections.Generic;
C#操作Access数据库,收集了3篇经典文章
using System.Text;
C#操作Access数据库,收集了3篇经典文章
using ADOX;
C#操作Access数据库,收集了3篇经典文章
C#操作Access数据库,收集了3篇经典文章
namespace testADOX
C#操作Access数据库,收集了3篇经典文章C#操作Access数据库,收集了3篇经典文章
C#操作Access数据库,收集了3篇经典文章{
C#操作Access数据库,收集了3篇经典文章    
class Program
C#操作Access数据库,收集了3篇经典文章C#操作Access数据库,收集了3篇经典文章    
C#操作Access数据库,收集了3篇经典文章{
C#操作Access数据库,收集了3篇经典文章        
static void Main(string[] args)
C#操作Access数据库,收集了3篇经典文章C#操作Access数据库,收集了3篇经典文章        
C#操作Access数据库,收集了3篇经典文章{
C#操作Access数据库,收集了3篇经典文章            ADOX.Catalog catalog 
= new Catalog();
C#操作Access数据库,收集了3篇经典文章            catalog.Create(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb;Jet OLEDB:Engine Type=5");
C#操作Access数据库,收集了3篇经典文章
C#操作Access数据库,收集了3篇经典文章            ADODB.Connection cn 
= new ADODB.Connection();
C#操作Access数据库,收集了3篇经典文章            
C#操作Access数据库,收集了3篇经典文章            cn.Open(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb"nullnull-1);
C#操作Access数据库,收集了3篇经典文章            catalog.ActiveConnection 
= cn;
C#操作Access数据库,收集了3篇经典文章
C#操作Access数据库,收集了3篇经典文章            ADOX.Table table 
= new ADOX.Table();
C#操作Access数据库,收集了3篇经典文章            table.Name 
= "FirstTable";
C#操作Access数据库,收集了3篇经典文章
C#操作Access数据库,收集了3篇经典文章            ADOX.Column column 
= new ADOX.Column();
C#操作Access数据库,收集了3篇经典文章            column.ParentCatalog 
= catalog;
C#操作Access数据库,收集了3篇经典文章            column.Name 
= "RecordId";
C#操作Access数据库,收集了3篇经典文章            column.Type 
= DataTypeEnum.adInteger;
C#操作Access数据库,收集了3篇经典文章            column.DefinedSize 
= 9;
C#操作Access数据库,收集了3篇经典文章            column.Properties[
"AutoIncrement"].Value = true;
C#操作Access数据库,收集了3篇经典文章            table.Columns.Append(column, DataTypeEnum.adInteger, 
9);
C#操作Access数据库,收集了3篇经典文章            table.Keys.Append(
"FirstTablePrimaryKey", KeyTypeEnum.adKeyPrimary, column, nullnull);
C#操作Access数据库,收集了3篇经典文章            table.Columns.Append(
"CustomerName", DataTypeEnum.adVarWChar, 50);
C#操作Access数据库,收集了3篇经典文章            table.Columns.Append(
"Age", DataTypeEnum.adInteger, 9);
C#操作Access数据库,收集了3篇经典文章            table.Columns.Append(
"Birthday", DataTypeEnum.adDate, 0);
C#操作Access数据库,收集了3篇经典文章            catalog.Tables.Append(table);
C#操作Access数据库,收集了3篇经典文章         
C#操作Access数据库,收集了3篇经典文章            cn.Close();
C#操作Access数据库,收集了3篇经典文章        }

C#操作Access数据库,收集了3篇经典文章    }

C#操作Access数据库,收集了3篇经典文章}

C#操作Access数据库,收集了3篇经典文章

      上面的代码中,创建了一个名为FirstTable的表,在表里加入了4个字段,并设置了一个主键。表里的字段分别输入4中不同的常用类型,第一个字段是一个自动增长的整数类型,这个类型比较特殊,你必须为这个字段设置ParentCatalog属性,并将“AutoIncrement”的属性值设为true.。Access里的Text类型对应的就是adVarWchar,而日期类型对应的是adDate。
键的设置如table.Keys.Append("FirstTablePrimaryKey", KeyTypeEnum.adKeyPrimary, column, null, null)所示,如果是外键的话,你还必须要设置关联的表和关联的字段,也就是Append方法的后两个字段。
你也可以参照上边的代码创建索引和视图。

三、C#创建Access数据库的备注字段

 原文:http://www.hackpig.cn/post/168.html

 

具体的用C#创建方式网上一堆,主要是创建备注字段的时候遇到的问题。
用ADOX创建的,在工程里添加引用dll就不说了,错误的步骤如下(就少了一步):
-------------------------------------------------------------------
            //创建库
            ADOX.CatalogClass catLog = new ADOX.CatalogClass();
            catLog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="+path+";");
           
            //创建表
            ADOX.TableClass tbl = new ADOX.TableClass();
            tbl.ParentCatalog = catLog;
            tbl.Name = "NewTable";

            //增加字段
           ADOX.ColumnClass c = new ADOX.ColumnClass();
           c.ParentCatalog = catLog;
           c.Name = list1[i];
           c.Properties["Jet OLEDB:Allow Zero Length"].Value = true;
           tbl.Columns.Append(c, ADOX.DataTypeEnum.adLongVarWChar, 16);

            catLog.Tables.Append(tbl);
---------------------------------------------------------------------
Access的备注类型是Memo,不过在ADOX方式下,DataTypeEnum枚举里是没有这项的,adLongVarWChar就是备注,长度为16。这样创建,是不报错的,但是无论如何,建立出来的都是文本型的字段,最大长度限制是255,在内容很多的时候不够用,查了一堆,发现就是因为少了一句,正确的如下:

-------------------------------------
            //创建库
            ADOX.CatalogClass catLog = new ADOX.CatalogClass();
            catLog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="+path+";");
           
            //创建表
            ADOX.TableClass tbl = new ADOX.TableClass();
            tbl.ParentCatalog = catLog;
            tbl.Name = "NewTable";

            //增加字段
           ADOX.ColumnClass c = new ADOX.ColumnClass();
           c.ParentCatalog = catLog;
           c.Type = ADOX.DataTypeEnum.adLongVarWChar; //这句不能少,并且位置必须在其它属性前面,否则会报错。
           c.Name = list1[i];
           c.Properties["Jet OLEDB:Allow Zero Length"].Value = true;
           tbl.Columns.Append(c, ADOX.DataTypeEnum.adLongVarWChar, 16);

            catLog.Tables.Append(tbl);
-------------------------------------

这样,就建立出来备注类型的字段了。

 

 

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
PHP编程中有哪些常见的Behat操作?PHP编程中有哪些常见的Behat操作?Jun 12, 2023 am 08:19 AM

PHP编程中有哪些常见的Behat操作?Behat是一个行为驱动开发(BDD)工具,允许测试人员和开发人员在自然语言中撰写测试用例,并将这些用例转化为可执行的代码。它支持PHP语言,并提供了丰富的库和功能,可以实现多种常见的测试操作。下面列举了PHP编程中常见的Behat操作。前置条件(Background)在编写测试用例时,有时候会有一些公共的前置条件需要

ThinkPHP6如何进行表单验证操作?ThinkPHP6如何进行表单验证操作?Jun 12, 2023 am 09:36 AM

ThinkPHP6是一款基于PHP的MVC框架,极大地简化了Web应用程序的开发。其中表单验证是一个非常基础和重要的功能。在这篇文章中,我们将介绍ThinkPHP6中如何进行表单验证操作。一、验证规则定义在ThinkPHP6中,验证规则都需要定义在控制器中,我们可以通过在控制器中定义一个$validate属性来实现规则的定义,如下所示:usethinkVa

PHP编程中有哪些常见的jQuery操作?PHP编程中有哪些常见的jQuery操作?Jun 12, 2023 am 10:38 AM

PHP编程中有哪些常见的jQuery操作?在PHP编程中,使用jQuery进行网页开发是一种非常方便和高效的方式。jQuery是一个简单而强大的JavaScript库,包含了许多实用的方法和函数。在PHP编程中,我们常常使用jQuery来操纵HTML和DOM元素,使网页具有更好的交互性和高度的可视化效果。在本文中,我们将介绍一些常见的PHP编程中使用jQue

PHP编程中有哪些常见的OAuth操作?PHP编程中有哪些常见的OAuth操作?Jun 12, 2023 am 08:48 AM

OAuth(开放授权)是一种用于授权访问控制的标准化协议。在Web开发中,使用OAuth可以帮助应用程序安全地从第三方平台中获取用户数据或资源。而在PHP编程中,OAuth操作也被广泛应用。本文将介绍PHP编程中的常见OAuth操作。OAuth1.0a授权OAuth1.0a授权是OAuth中最早出现的授权方式,也是最复杂的一种授权方式。在PHP编程中,O

ThinkPHP6中如何进行邮件发送操作?ThinkPHP6中如何进行邮件发送操作?Jun 12, 2023 am 10:12 AM

近年来,邮件作为一种最为常见的通信方式,被广泛应用于各种应用场景中。在不同的WEB应用中,也经常需要通过发送邮件的方式来进行通知、验证等功能。而在使用ThinkPHP6框架开发WEB应用的过程中,我们需要了解如何进行邮件发送操作,以便更好地实现各种功能。下面我们将介绍如何在ThinkPHP6中进行邮件发送操作。配置邮件在ThinkPHP6中配置邮件非常方便。

ThinkPHP6中如何进行分词搜索操作?ThinkPHP6中如何进行分词搜索操作?Jun 12, 2023 am 09:39 AM

随着互联网应用的不断发展,搜索引擎也成为了日常生活中必不可少的工具,而分词搜索是搜索引擎中非常重要的一种搜索方式。在使用ThinkPHP6框架开发项目时,我们也需要对分词搜索进行深入了解和应用。本文将介绍ThinkPHP6中如何进行分词搜索操作。一、分词搜索简介分词搜索是将用户输入的关键词进行分割,然后在数据库中进行模糊搜索,找到相符合的记录。相较于传统的搜

怎样在ThinkPHP6中进行captcha图形验证码操作?怎样在ThinkPHP6中进行captcha图形验证码操作?Jun 12, 2023 am 11:45 AM

随着互联网的快速发展,基于图形的验证码已经成为了网站安全保障的一个重要环节。验证码可以有效地防止机器人或恶意程序对网站进行自动化操作,同时也可以保障用户信息的安全性。而在基于ThinkPHP6的网站开发中,如何实现captcha图形验证码的操作呢?本文将为您介绍具体的操作流程。一、生成Captcha图形验证码1、使用captcha库进行安装在ThinkPHP

怎样使用ThinkPHP6进行地理定位操作?怎样使用ThinkPHP6进行地理定位操作?Jun 12, 2023 am 08:33 AM

随着移动互联网的快速发展,地理定位功能已经成为了许多应用程序中必不可少的功能,让用户能够更加方便地获取周边信息,也为商家提供了便捷的交互方式。而在应用中实现地理定位功能,ThinkPHP6框架也提供了较为便捷的解决方案。本文将介绍使用ThinkPHP6进行地理定位操作的具体方法及步骤。一、安装扩展在使用前,需要安装thinkphp官方提供的think-geo

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器