namespace添加如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ADOX;using System.Data;
using System.Data.OleDb;
using System.IO;

一》创建access数据库

首先添加ADOX COM组件

添加过程如下;点击添加引用,在COM组件栏选择相应组件。

使用Microsoft ADO Ext.2.8点击确定。

C#代码实现如下

namespace Database
{
public class accessdatabase
{
public void Database()
{
}
public void creatdb(string path)
{
ADOX.Catalog catalog = new Catalog();
catalog.Create(("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ path +";Jet OLEDB:Engine Type=5"));
}

二》创建access表单

我们通过COM组件ADOB来实现这个功能,具体实现过程如下:

1>添加引用

使用上述COM实现,表的创建,实例代码如下,我们创建之前常用的Userdb,存储登陆用的账户密码及权限,全部是string类型 50长度,其中Username是主键。

 public void User_init(string path)
{
if (!File.Exists(path))
{
ADOX.Catalog A = new Catalog();
A.Create(("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Jet OLEDB:Engine Type=5"));
ADODB.Connection cn = new ADODB.Connection(); cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+path, null, null, -);
A.ActiveConnection = cn; ADOX.Table table = new ADOX.Table();
table.Name = "User"; ADOX.Column column = new ADOX.Column();
column.ParentCatalog = A;
column.Name = "User_Name";
column.Type = DataTypeEnum.adVarWChar;
column.DefinedSize =;
// column.Properties["AutoIncrement"].Value = true;
table.Columns.Append(column, DataTypeEnum.adVarWChar, );
table.Keys.Append("FirstTablePrimaryKey", KeyTypeEnum.adKeyPrimary, column, null, null);
table.Columns.Append("User_ID", DataTypeEnum.adVarWChar, );
table.Columns.Append("Pass_Word", DataTypeEnum.adVarWChar, );
A.Tables.Append(table);
}
///检查该数据库是否存在,如果数据库不存在将会新建该数据库。 }

上述代码时C#具体数据库表单的建立,

结合labview DB工具包的思路和样式我们进一步泛化,封装代码如下:

首先我们先建立一个枚举和一个结构体,结构体与labview vi中的这个簇相同,枚举用于将labview中的数据结构转换到ADO能识别的数据结构

枚举和结构体的代码如下:

        public enum type:byte
{String,U32,Dbl,Data}
public struct columninformation
{
public string columnname;
public type datatype;
public int size;
public bool keyornot;
}

C#创建accesss表的实现代码如下:

public void Appendtable(string path, string table, columninformation[] informations)
{ ADOX.Catalog A = new Catalog();
ADODB.Connection cn = new ADODB.Connection();
cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path, null, null, -);
A.ActiveConnection = cn;
ADOX.Table table1 = new ADOX.Table();
table1.Name = table;
int sn = ; while (sn < informations.Length)
{ ADOX.Column column = new ADOX.Column();
column.ParentCatalog = A;
column.Name = informations[sn].columnname;
switch (informations[sn].datatype)
{
case (type.String):
column.Type = DataTypeEnum.adWChar;
break;
case (type.Data):
column.Type = DataTypeEnum.adFileTime;
break;
case (type.Dbl):
column.Type = DataTypeEnum.adDecimal;
break;
case (type.U32):
column.Type = DataTypeEnum.adDouble;
break;
}
column.DefinedSize = informations[sn].size;
// column.Properties["AutoIncrement"].Value = true;
table1.Columns.Append(column, column.Type, column.DefinedSize);
if (informations[sn].keyornot)
{ table1.Keys.Append("FirstTablePrimaryKey", KeyTypeEnum.adKeyPrimary, column, null, null); };
sn += ;
}
A.Tables.Append(table1); }

参数过多,我们在类库中添加字段path和table并封装创建对应的访问器代码如下

        private string path;

        public string Path
{
get { return path; }
set { path = value; }
} private string table; public string Table
{
get { return table; }
set { table = value; }
}

将创建表单的程序再压缩封装代码如下

        public void Appendtable(columninformation[] informations)
{
Appendtable(path, table, informations);
}

回头看最初的例子,我们可以使用我们库中创建表单的程序代码了

         public void User_init(string path)
{
if (!File.Exists(path))
{
accessdatabase userdb = new accessdatabase();
userdb.Path="D:\\1.mdb";
userdb.Table="User";
userdb.creatdb();
accessdatabase.columninformation A, B, C;
A.columnname = "User_Name";
A.datatype = accessdatabase.type.String;
A.keyornot = true;
A.size = ;
B.columnname = "User_ID";
B.datatype = accessdatabase.type.String;
B.keyornot = false;
B.size = ;
C.columnname = "Pass_Word";
C.datatype = accessdatabase.type.String;
C.keyornot = false;
C.size = ;
accessdatabase.columninformation[] M={A,B,C};
userdb.Appendtable(M);
}
///检查该数据库是否存在,如果数据库不存在将会新建该数据库。 }

【LABVIEW到C#】2》database的操作(一)之 创建access和创建表单的更多相关文章

  1. jQuery对表单、表格的操作及更多应用(上:表单应用)

    内容摘录自锋利的JQuery一书 一.表单应用 1 获取和失去焦点改变样式(P142) $(function(){ $(":input").focus(function(){ // ...

  2. MVC 【Razor 视图引擎】基础操作 --页面跳转,传值,表单提交

    ASPX  与  Razor  仅仅是视图不一样. 新建项目----ASP.NET MVC 4 Web 应用程序------选择模板(空).视图引擎(Razor ) 1.视图中 c# 代码  与 HT ...

  3. C#操作Access数据库(创建&修改结构)

    本文转自:http://www.cnblogs.com/liyugang/archive/2012/11/17/2775393.html 想要在程序中控制Access,不是数据,而是Access数据库 ...

  4. 『心善渊』Selenium3.0基础 — 16、Selenium对iframe表单的操作

    目录 1.什么是iframe表单 2.iframe表单操作流程 3.iframe表单操作常用方法 (1)进入表单 (2)多表单切换 4.表单操作示例 1.什么是iframe表单 实际上就是HTML页面 ...

  5. Django笔记&教程 6-2 表单(Form)基础操作

    Django 自学笔记兼学习教程第6章第2节--表单(Form)基础操作 点击查看教程总目录 1 - 编写表单类 创建新的表单类的代码,一般写到一个专门的forms.py文件中(一般放在对应的app文 ...

  6. LabVIEW之生产者/消费者模式--队列操作 彭会锋

    LabVIEW之生产者/消费者模式--队列操作 彭会锋 本文章主要是对学习LabVIEW之生产者/消费者模式的学习笔记,其中涉及到同步控制技术-队列.事件.状态机.生产者-消费者模式,这几种技术在在本 ...

  7. LabVIEW之生产者/消费者模式--队列操作

    LabVIEW之生产者/消费者模式--队列操作 彭会锋 本文章主要是对学习LabVIEW之生产者/消费者模式的学习笔记,其中涉及到同步控制技术-队列.事件.状态机.生产者-消费者模式,这几种技术在在本 ...

  8. python数据库操作常用功能使用详解(创建表/插入数据/获取数据)

    实例1.取得MYSQL版本 复制代码 代码如下: # -*- coding: UTF-8 -*-#安装MYSQL DB for pythonimport MySQLdb as mdbcon = Non ...

  9. Day19 Django之Form表单验证、CSRF、Cookie、Session和Model操作

    一.Form表单验证 用于做用户提交数据的验证1.自定义规则 a.自定义规则(类,字段名==html中的name值)b.数据提交-规则进行匹配代码如下: """day19 ...

随机推荐

  1. bootstrap页面布局

    首先,我们必须明确,在这四种角色登录网站,看到页面是不同,这里不仅涉及到后端的权限控制,还涉及到前端页面的布局,区分好这些角色看的东西哪些是相同的,哪些又是不同的呢,这个必须在这里想明白,所以要做好页 ...

  2. adb通过TCP/IP连接提示 unable to connect to *, Connection refused的解决方法

    通过串口连接板子进入命令行,然后执行: su setprop service.adb.tcp.port 5555 stop adbd start adbd

  3. Logstash简介

    支持多种数据获取机制,通过TCP/UDP协议.文件.syslog.windows.EventLogs及STDIN等:获取到数据口,支持对数据进行过滤.修改等操作JRuby语言研发,工作在JVM中   ...

  4. Linux:Ubuntu16.04下创建Wifi热点

    Linux:Ubuntu16.04下创建Wifi热点说明 1.Ubuntu16.04里面可以直接创建热点,而不用像以前的版本,还要其他辅助工具. 2.本篇文章参考自编程人生 具体步骤如下: 1. 点击 ...

  5. 小数据池、is 和 ==的区别

    小数据池,在一定情况下出现内存共享(只有int  和 str 才有的)   is 和 ==的区别 id()     打印数据的地址 a  = 'hello' b = 'hello' print(a = ...

  6. smarty模板及其应用

    Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一.它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离. ...

  7. 17 南宁区域赛 F - The Chosen One 【规律】

    题目链接 https://nanti.jisuanke.com/t/19972 题意 给出一个n 然后将 n 个数 标号为 1 -> n 按顺序排列 每次抽掉 奇数位的数 然后求最后剩下那个数字 ...

  8. 大型网站系统与 Java 中间件实践

    http://wanglizhi.github.io/2016/07/27/JavaWeb-And-MiddleWare/ 第一章 分布式系统介绍 分布式系统的定义:组件分布在网络计算机上,组件间仅仅 ...

  9. $Java-json系列(二):用JSONObject解析和处理json数据

    本文中主要介绍JSONObject处理json数据时候的一些常用场景和方法. (一)jar包下载 所需jar包打包下载百度网盘地址:https://pan.baidu.com/s/1c27Uyre ( ...

  10. hadoop04---shell

    Linux上的mysql安装之后卸载是卸载不干净的,ping服务器ping不通就是把icmp协议关闭了,ping使用的是icmp协议. Export是全局变量,所有用户登录进来都可以使用. 1.ipt ...