首页 > 编程语言 >C#和VB.NET连接Access

C#和VB.NET连接Access

时间:2024-07-09 16:54:23浏览次数:12  
标签:控件 VB Dim C# 数据库 oleRed Access lv 连接

一、直接通过软件连接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

标签:控件,VB,Dim,C#,数据库,oleRed,Access,lv,连接
From: https://www.cnblogs.com/yantingguo/p/18292282

相关文章

  • excel实现对同一个工作簿下不同工作表分别加密,这种能实现吗?
    大家好,我是Python进阶者。一、前言前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Python自动化办公的问题,问题如下:大佬们请问下这种能实现吗?excel实现对同一个工作簿下不同工作表分别加密。二、实现过程这里【瑜亮老师】给了一个思路:是加密,还是保护?【哎呦喂 ......
  • Java Executors类的9种创建线程池的方法及应用场景分析
    在Java中,Executors类提供了多种静态工厂方法来创建不同类型的线程池。在学习线程池的过程中,一定避不开Executors类,掌握这个类的使用、原理、使用场景,对于实际项目开发时,运用自如,以下是一些常用的方法,V哥来一一细说:newCachedThreadPool():创建一个可缓存的线程池,如果线程池中......
  • Chrome海康VideoWebPlugin无法调用
    在高版本Chome浏览器中无法使用VideoWebPlugin解决办法第一种使用低于94版本的Chrome浏览器下载地址:旧版本下载第二种在谷歌浏览器中地址栏输入chrome://flags/Allowinvalidcertificatesforresourcesloadedfromlocalhost(Enabled)Blockinsecureprivatenetwork......
  • 创建vue2项目执行npm install -g @vue/cli报错 no such file or directory, mkdir '\
    第一步:查看默认全局安装路径。指令:npmconfiggetprefix我这里路径npmconfiggetprefixE:\NVM\nvm\node_global第二步:不存在这个路劲进行更换npmconfigsetprefix"D:\Develop\nodejs"nodejs里面有node_cachenode_globalnode_modules这些文件npmconfiggetpre......
  • Profibus转ModbusTCP网关模块实现Profibus_DP向ModbusTCP转换
    Profibus转ModbusTCP网关模块实现Profibus_DP向ModbusTCP转换Profibus和ModbusTCP是工业控制自动化常用的二种通信协议。Profibus是一种串口通信协议,它提供了迅速靠谱的数据传输和各种拓扑结构,如总线和星型构造。Profibus可以和感应器、执行器、PLC等各类设备进行通信。ModbusTC......
  • UVA12342 Tax Calculator 题解
    题目传送门题目大意题目描述某国所得税计算十分复杂。该国政府指定你制作一个自动计算所得税的程序。以下是该国计算所得税的规则:所得税免征额为180000180000......
  • C#解析DL/T645电力数据
    DL/T645协议详细解析DL/T645是我国电力行业的标准,主要适用于电表与计算机之间的通讯。帧格式帧起始符68H标识一帧信息的开始,其值为68H=01101000B地址域A0~A5地址域由6个字节构成,每字节2位BCD码,地址长度可达12位十进制数。每块表具有唯一的通信地址,且与物理层信......
  • echarts折线图加一条目标值线
    文章目录一、echarts折线图加一条目标值线?二、使用步骤1.代码如下:2.示例图片总结一、echarts折线图加一条目标值线?在ECharts中添加一条目标值线(即一个固定值的水平线),可以使用markLine组件,以下是一个简单的例子,展示了如何在ECharts折线图中添加一条目标值线。......
  • uni-app使用ucharts地图,自定义Tooltip鼠标悬浮显示内容并且根据@getIndex点击事件获
    项目场景:uni-app使用ucharts地图,自定义Tooltip鼠标悬浮显示内容并且根据@getIndex点击事件获取点击的地区下标和地区名例如:问题描述官方给的文档有限,需要自己下载地图json数据然后自己渲染和编写鼠标悬浮显示内容以及获取点击地址名称,官方只给了@getIndex事件获取下......
  • 容器之docker compose
    DockerCompose是一个用于定义和运行多容器Docker应用的工具。通过一个YAML文件,您可以配置应用程序需要的所有服务,并使用单个命令来创建和启动这些服务。以下是对DockerCompose的详细介绍:核心概念服务(Services)服务是一个运行容器的抽象。每个服务都运行一个镜像,并且......