C#和VB.NET连接Access

news/2024/11/18 21:24:28/文章来源:https://www.cnblogs.com/yantingguo/p/18292282

一、直接通过软件连接Access表

1:新建一个windowsForm工程。

 

2:打开"检视\伺服器总管\资料连接"后,右击"资料连接"后打开"连接资料连接",选择正确的资料来源与资料库档名,若有密码请输入正确的密码,如无,则不输入。

3:点击"测试连接"后,显示连接成功。

4:添加一个DataGridView控件,点击Data Source属性,选择"Add Project Data Source",然后找到添加的Access表"Administrator"。如下图所示:

5:点击调试,及显示其表"Administrator"的全部。

 

二、C#连接Access数据库文件

1:通过OLEDB的Connection来连接数据库文件,具体代码如下:

/// <summary>

///连接数据库文件

/// </summary>

/// <param name="intFlag">连接标志位(0:普通方式打开;1:以独占方式打开)</param>

/// <param name="path">数据库文件的路径</param>

/// <returns>OleDbConnection</returns>

private static OleDbConnection getConnection(int intFlag,string path)

{

string strFilePath = null;//数据库文件路径

string strConn = null;//打开数据库语句

//普通方式打开

if (intFlag == 0)

{

//strFilePath = Application.StartupPath + @"\db\Database.mdb";

strFilePath = path;

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";";

}

//以独占方式打开

if (intFlag == 1)

{

strFilePath = Application.StartupPath + @"\db\Database_1.mdb";

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";" +

"Jet OLEDB:Database Password=123;";

}

OleDbConnection oleConn = new OleDbConnection(strConn);

return oleConn;

}

2:成功连接数据库文件后,需要读取里面的内容并显示出来,其代码如下:

/// <summary>

///查看数据库文件并填充

/// </summary>

/// <param name="intFlag">填充标志位(0:DataGridView控件;1:ListView控件)</param>

/// <param name="path">数据库文件路径</param>

/// <param name="obj">填充控件</param>

public void DataFille(int intFlag,string path ,object obj)

{

OleDbConnection oleConn = getConnection(intFlag, path);

if (oleConn.State == ConnectionState.Open)//判断数据库是否关闭

{

oleConn.Close();

}

oleConn.Open();

string strSelect = "select * from Administrator";//查询语句(此句表示返回整张表)

if (intFlag == 0)

{

DataGridView dv = (DataGridView)obj; //拆箱操作

OleDbDataAdapter da = new OleDbDataAdapter(strSelect, oleConn);//建立适配器,通过SQL语句去搜索数据库

DataSet ds = new DataSet();

//建立数据集

da.Fill(ds, "0");

DataTable dt = ds.Tables["0"];

dv.DataSource = dt;//把表dt显示到DataGridView控件上

}

if (intFlag == 1)

{

ListView lv = (ListView)obj;

OleDbCommand oleCmd = new OleDbCommand(strSelect, oleConn);//执行的预存式

OleDbDataReader oleRed = oleCmd.ExecuteReader();//执行查询语句,并读取相应的数据

string[] str = new string[oleRed.FieldCount];

lv.Columns.Clear();//清除列名

lv.Items.Clear();//清除表格内容

//添加列名

for (int i = 0; i < oleRed.VisibleFieldCount; i++)//获取列名

{

lv.Columns.Add(oleRed.GetName(i));

}

while (oleRed.Read())

{

ListViewItem item = new ListViewItem(oleRed[0].ToString());//从第1行开始添加

 

for (int i = 1; i < oleRed.FieldCount; i++)

{

item.SubItems.Add(oleRed[i].ToString());//添加剩余行

 

}

lv.Items.Add(item);//添加到listview控件上

}

}

 

三、VB.NET连接Access数据库文件

''' <summary>

''' 查看数据库

''' </summary>

''' <param name="filepath">数据库文件的路径</param>

''' <param name="obj">填充控件内容</param>

''' <param name="flag">填充标志位(0:DataGridView控件;1:listview控件)</param>

''' <param name="password">数据库文件密码</param>

''' <returns>flase:打开失败;true:打开成功</returns>

''' <remarks></remarks>

Public Function DataFille(ByVal filepath As String, ByVal obj As Object, Optional ByVal flag As Integer = 0, Optional ByVal password As String = Nothing) As Boolean

Dim bolReturn As Boolean = False

Try

'连接数据库

Dim oleCon As OleDbConnection = getConnection(filepath)

If (oleCon.State = ConnectionState.Open) Then

oleCon.Close()

End If

oleCon.Open()

'查询语句

Dim strSelect As String = "select * form Administrator"

'以DataGridView填充

If flag = 0 Then

Dim dgv As DataGridView = obj

'执行语句

Dim da As OleDbDataAdapter = New OleDbDataAdapter(strSelect, oleCon)

'声明连接池

Dim ds As DataSet = New DataSet()

'填充数据集

da.Fill(ds, "0")

'填充到表dt中

Dim dt As DataTable = ds.Tables("0")

'填充控件

dgv.DataSource = dt

End If

'以listview填充

If flag = 1 Then

Dim lv As ListView = obj

'执行语句

Dim oleCmd As OleDbCommand = New OleDbCommand(strSelect, oleCon)

'读取语句

Dim oleRed As OleDbDataReader = oleCmd.ExecuteReader()

'清除控件内容

lv.Columns.Clear()

lv.Items.Clear()

'添加字段名

For i = 0 To oleRed.VisibleFieldCount - 1

lv.Columns.Add(oleRed.GetName(i))

Next

'添加数据表内容

While (oleRed.Read())

Dim item As ListViewItem = New ListViewItem(oleRed(0).ToString())

For i = 0 To oleRed.FieldCount - 1

item.SubItems.Add(oleRed(i).ToString())

Next

lv.Items.Add(item)

End While

End If

bolReturn = True

Catch ex As Exception

bolReturn = False

End Try

Return bolReturn

End Function

 

作者:dongweian

出处:https://www.cnblogs.com/dongweian/articles/7707279.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/741220.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一对一关联

一对一关系实际上是通过建立双向关系的一对多关系的基础上转化而来。比如:一个用户对应一张身份证,一张身份证属于一个用户。 class IdCard(Base): """省份证的模型类, 它和员工之间是一对一的关联关系""" __tablename__ = t_id_card id: Map…

CSS minification error: Lexical error on line 1:Unrecognized text

删除node_modules 重新安装,如果还不行,就复制一份别的能用的

【goreplay】python简单使用goreplay中间件功能

一、场景流量录制,需要对播放的流量进程定制化处理,那么可以使用中间件来实现二、官网 https://pypi.org/project/gor/三、编写中间件代码# coding: utf-8 import sys from gor.middleware import AsyncioGordef on_request(proxy, msg, **kwargs):proxy.on(response, on_res…

一对多和多对一关联

比如:作者和文章之间, 部门和员工之间都是一对多的关联关系。反过来就是:多对一的关联关系 1、定义外键约束 定义关系的第一步是创建外键。外键是(foreign key)用来在 A 表存储 B 表的主键值以便和 B 表建立联系的关系字段。因为外键只能存储单一数据(标量),所以外键总…

树莓派4B-用串口读取JY901S陀螺仪数据

陀螺仪是一种用来感测与维持方向的装置,基于角动量的理论设计出来的。陀螺仪主要是由一个位于轴心可以旋转的轮子构成,陀螺仪一旦开始旋转,由于轮子的「角动量」,陀螺仪有抗拒方向改变的趋向。陀螺仪多用于导航、定位等系统JY901S是9轴姿态角度传感器,支持串口和 IIC 两种…

Java 中的泛型 集合(List,Set) Map

泛型 集合(List,Set) Map 泛型泛型的本质是参数化类型,即允许在编译时对集合进行类型检查,从而避免安全问题,提高代码的复用性泛型的具体定义与作用定义:泛型是一种在编译阶段进行类型检查的机制,它允许在类,方法,接口后通过<> 来声明类型参数.这些参数在编译时会被具体的…

创建vue2项目执行npm install -g @vue/cli报错 no such file or directory, mkdir \\?

第一步:查看默认全局安装路径。 指令:npm config get prefix 我这里路径 npm config get prefix E:\NVM\nvm\node_global 第二步:不存在这个路劲进行更换 npm config set prefix "D:\Develop\nodejs" nodejs里面有 node_cache node_global node_modules 这些文件 …

NAND Flash基础介绍 一

Chip CI 颗粒厂商提供的是整个一块晶圆,晶圆上已经把芯片划分好了,如下图模组厂商或者颗粒厂商会把晶圆拿去分割,拆分出一个个芯片,每个拆分下来的芯片型号、工艺、空间大小等由颗粒厂家提前定制好了,具体说明可参考https://www.cnblogs.com/studywithallofyou/p/18291633…

各类插件

生成图片html2canvas : 基于页面中存在且可用的DOM结构、样式,构建“截图”,绘制到canvas画布中dom-to-image:将DOM 节点序列化为XML,包装到SVG中,再转为图片。

性能测试:性能测试流程与方法

简介 性能测试流程是指在进行性能测试时所遵循的一系列步骤和阶段,以确保对系统的全面测试和评估。性能测试流程的具体步骤可能会因组织、项目和测试需求而有所不同。 性能****测试流程分析现状:首先需要对应用程序或系统进行详细的分析,了解其当前的性能状况、发现性能瓶颈…

ESP32-S3开发板技术研究第一篇

1. 最小系统板原理图框架,第1路USB转串口,第2路USB直连模组 2. RGB灯是自带主控的,WS2812是一种智能控制LED灯源,集成了控制电路和RGB芯片在一个5050封装组件中。 3. 软件开发,编译环境 3.1 先安装 vs code 3.2 在vscode 的扩展里面搜索 ESP-IDF插件,安装

Flask API 如何接入 i18n 实现国际化多语言

如何在现有的 Flask API 项目中,引入 i18n 实现国际化多语言,同时与前端 Vue3 页面联动。​ 1. 介绍 上一篇文章分享了 Vue3 如何如何接入 i18n 实现国际化多语言,这里继续和大家分享 Flask 后端如何接入 i18n 实现国际化多语言。 用户请求 API 的多语言化其实有两种解决方案…