主题介绍
本文主要介绍Net Framework框架下如何连接瀚高数据库。
驱动介绍
链接:https://pan.baidu.com/s/1xuz6uJz0utRgKWecXhpOiA?pwd=o0tj 
瀚高数据库安装完毕后,自带数据库驱动,其位置如下:(这里以V4.5.8为例,实际使用中请参考具体版本)

其中 DotNet 文件夹 即为 Net 程序使用的驱动包,进入目录

解压后,可以看到 

其中列出了 net5.0、netcoreapp3.1、netstandard2.0、netstanddard2.1和Nhgb.EntityFrameworkcore.HGDB.dll 等几个文件,根据开发环境和框架,从中选择适用的驱动。
Net Framework
.NET Framework1.0 主要提供了面向 Windows 桌面(Windows Form)和服务器(ASP.NET Web Forms)的基础开发框架。目前最新版本为 .NET Framework 4.8,这也是.NET Frameork 的最后一个版本。
根据 微软官方文档的介绍.NET Standard - .NET | Microsoft Learn的介绍

[^*]: .NET Framework 不支持 .NET Standard 2.1。
综上所述:使用 Net Framework 框架的项目,首选引用 netstandard2.0 文件中的驱动。
[^注意:]: NET Framework的版本必须是4.6.1以后的版本
开发环境搭建
| 软件 | 
版本 | 
| HGDB | 
安全版V4、企业版v6及以上版本 | 
| visual studio | 
2022 | 
添加引用

需要引入的依赖(排序不分先后)
| 包名 | 
| System.Memory | 
| System.Runtime.CompilerServices.Unsafe | 
| System.Text.Json | 
| System.Threading.Channels | 
| System.Buffers | 
| Microsoft.Bcl.AsyncInterfaces | 
目标框架

示例代码
App.conf
Text<?xml version="1.0" encoding="utf-8"?> <configuration>     <startup>          <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>     </startup>     <connectionStrings>         <add name="ConnectionString" connectionString="Server=192.168.2.5;Port=5866;User Id=sysdba;Password=Hello@123;Database=highgo;"/>     </connectionStrings> </configuration>
   | 
 
ConnectionManager.cs (仅为片段部分)
Text/// <summary> /// 取得连接字串 /// </summary> private ConnectionManager() {     strConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();             }
  /// <summary> /// 取得连接字串 /// </summary> /// <returns>连接字串</returns> public string GetConnectionString() {     return strConnectionString; }
  /// <summary> /// 创建数据库连接 /// </summary> /// <returns>返回一个NhgdbConnection型变量</returns> public NhgdbConnection GetConn() {     NhgdbConnection sqlConn = new NhgdbConnection(strConnectionString);     sqlConn.Open();
      return sqlConn; } /// <summary> /// 执行查询SQL操作,返回查询资料结果集 /// </summary> /// <param name="sql">Sql语句</param> /// <returns>资料结果集</returns> public DataTable GetDataTable(string sql) {      DataTable dt = new DataTable();
       using (NhgdbConnection conn = new NhgdbConnection())      {           conn.ConnectionString = strConnectionString;           conn.Open();
            NhgdbCommand sc = new NhgdbCommand(sql);           sc.Connection = conn;           sc.CommandTimeout = 0;
            NhgdbDataAdapter adapter = new NhgdbDataAdapter(sc);
            adapter.Fill(dt);           conn.Close();       }
        return dt; }
   | 
 
Form1.cs
Textprivate void dataGridView1_SelectionChanged(object sender, EventArgs e) {     int a = dataGridView1.SelectedRows.Count;     if (a > 0)     {         txt_id.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();         txt_name.Text = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();         txt_sex.Text = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();         txt_age.Text = dataGridView1.SelectedRows[0].Cells[3].Value.ToString();         txt_grade.Text = dataGridView1.SelectedRows[0].Cells[4].Value.ToString();         txt_addr.Text = dataGridView1.SelectedRows[0].Cells[5].Value.ToString();     }
  }
  private void btn_load_Click(object sender, EventArgs e) {     string sql = "select id,name,sex,age,grade,address from student order by id";     DataTable dt = ConnectionManager.CreateInstance().GetDataTable(sql);     dataGridView1.DataSource = dt; }
   | 
 
结果演示
初始界面:

加载数据集:

选中数据:

引用其他版本驱动的表现
引用 netstanddard2.1

引用 netcoreapp3.1

引用 net5.0

引用 net6.0

引用 net7.0

引用 net8.0
