首页 > 数据库 >.net使用Freesql连接瀚高数据库

.net使用Freesql连接瀚高数据库

时间:2024-09-20 09:36:17浏览次数:11  
标签:FreeType DataType Freesql 数据库 FreeSql net isdatabase fsql

https://www.cnblogs.com/Lynnyin/p/18375455

 

默认情况下Freesql可以使用PostgreSQL的连接方式连接,如果是md5加密的

复制代码
  var isdatabase = MyRedis.GetStringKey("DataBaseType");
  var sqlConnStr =  "Server=192.168.1.111;Port=5866;User Id=root;Password=123456;Database=databasename;searchpath=moshi";

 FreeSql.DataType FreeType = 0;
  //因为我们之前支持sql和mysql现在新增一个瀚高
  if (isdatabase == 1)
  {
      FreeType = FreeSql.DataType.MySql;
  }
  else if (isdatabase == 0)
  {
      FreeType = FreeSql.DataType.SqlServer;
  }
  else
  {
      FreeType = FreeSql.DataType.PostgreSQL;
  }
  IFreeSql fsql = new FreeSql.FreeSqlBuilder()
      .UseConnectionString(FreeType, sqlConnStr).UseAutoSyncStructure(false).Build();
  services.AddSingleton<IFreeSql>(fsql);
复制代码

 

但是公司的瀚高数据库加密模式从md5改成sm3后上面这种连接方式就失效了,Freesql本身并不支持直接连sm3加密的瀚高数据库。所以需要用到自定义链接。var isdatabase = MyRedis.GetStringKey("DataBaseType");

 
复制代码
var sqlConnStr =  "Server=192.168.1.111;Port=5866;User Id=root;Password=123456;Database=databasename;searchpath=moshi";

 FreeSql.DataType FreeType = 0;
  //因为我们之前支持sql和mysql现在新增一个瀚高
  if (isdatabase == 1)
  {
      FreeType = FreeSql.DataType.MySql;
  }
  else if (isdatabase == 0)
  {
      FreeType = FreeSql.DataType.SqlServer;
  }
  else if (isdatabase == 2) { 
    FreeType = FreeSql.DataType.PostgreSQL; 
  }
  if(isdatabase==2){ 
var fsql = new FreeSqlBuilder()
.UseConnectionFactory(FreeType, () => new NhgdbConnection(sqlConnStr))//NhgdbConnection是瀚高官网下载的dll 
.UseNameConvert(NameConvertType.ToLower) //所有sql操作表列名转小写,数据库配置了不区分大小写,但是只在md5模式下有效,sm3模式下还是得自己加这个配置 
.UseAutoSyncStructure(false)//自动同步实体表结构到数据库,建议关闭,一不小心我删除过自己的表 
.Build(); 
fsql.SetDbProviderFactory(NhgdbFactory.Instance);//这是从瀚高官网下载的Nhgdb.dll 
services.AddSingleton<IFreeSql>(fsql);
  }else{  
IFreeSql fsql = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeType, sqlConnStr).UseAutoSyncStructure(false).Build();
  services.AddSingleton<IFreeSql>(fsql);
}
复制代码

 

如果md5加密方式使用以上方式连不上,那就是要改瀚高数据库配置,并非不支持连接。

但是公司的瀚高数据库加密模式从md5改成sm3后上面这种连接方式就失效了,Freesql本身并不支持直接连sm3加密的瀚高数据库。所以需要用到自定义链接。

https://files.cnblogs.com/files/Lynnyin/Nhgdb.zip?t=1724379769&download=true

标签:FreeType,DataType,Freesql,数据库,FreeSql,net,isdatabase,fsql
From: https://www.cnblogs.com/chinasoft/p/18421861

相关文章

  • C#|.net core 基础 - 扩展数组添加删除性能最好的方法
    今天在编码的时候遇到了一个问题,需要对数组变量添加新元素和删除元素,因为数组是固定大小的,因此对新增和删除并不友好,但有时候又会用到,因此想针对数组封装两个扩展方法:新增元素与删除元素,并能到达以下三个目标:1、性能优异;2、兼容性好;3、方便使用;这三个目标最麻烦的应该就是性......
  • 第十章 【后端】商品分类管理微服务(10.6)——创建商品分类数据库
    10.6创建商品分类数据库10.6.1使用PowerDesigner设计数据库设计模型注意:逻辑字段(如状态位、删除位)要设置成tinyint类型1位,MybatisPlus代码生成器才能生成Boolean类型(参考:https://baomidou.com/pages/779a6e/);为了提高插入效率,除了要设置自动增长的主......
  • GoogleNet模型原理及Pytorch实现
    GoogleNet模型,也被称为Inception-v1,是由Google团队在2014年提出的一种深度卷积神经网络架构,专门用于图像分类和特征提取任务。该模型在ILSVRC(ImageNetLargeScaleVisualRecognitionChallenge)比赛中取得了优异成绩,其创新的核心在于引入了“Inception”模块。以下是对Goog......
  • ResNet模型原理及Pytorch实现
    ResNet(ResidualNetwork,残差网络)模型是由微软亚洲研究院的何凯明等人在2015年提出的一种深度神经网络结构。其核心原理在于通过残差连接(residualconnections)解决了深层网络训练中的梯度消失和梯度爆炸问题,使得网络可以训练得更深,性能更强。以下是ResNet模型原理的详细解析:......
  • Deep-Live-Cam部署过程中出现AttributeError: ‘NoneType‘ object has no attribute
    安装Deep-Live-Cam过程中,我下载好了全部的requirements.txt里面的需要用到的第三方库,之后运行后成功出现以下界面,但是报错AttributeError:'NoneType'objecthasnoattribute'shape'报错如下翻阅了原项目的issues发现了相同的问题,找到解决方法:选择图片时图片的路径中不能......
  • 如何在 ASP.NET Core Web API 方法执行前后 “偷偷“ 作一些 “坏“ 事?初识 ActionFil
    前言:什么是ActionFilterAttribute?ActionFilterAttribute是一种作用于控制器Action方法的特性(Attribute),通过它,你可以在操作执行前后、异常处理时等不同的阶段插入自定义逻辑。比如在执行操作方法之前修改请求参数、记录日志、进行权限验证等操作,在执行操作方法之后发送邮件......
  • 数据库tips23
    OLAP服务器即联机分析处理服务器,是共享多维信息的、针对特定问题的联机数据访问和分析的快速软件技术。它通过对信息的多种可能的观察形式进行快速、稳定一致和交互性的存取,允许管理决策人员对数据进行深入观察它是数据仓库三层系统结构中的中间层。查询和报表工具、数据挖掘工具都......
  • Springboot基于SpringBootVue的智能敬老院管理系统ebjal(程序+源码+数据库+调试部署+开
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与意义随着老龄化社会的到来,敬老院作为老年人生活的重要场所,其管理效率和服务质量直接关系到老年人的生活质量与幸福感。传统敬老院管......
  • Springboot基于springbootvue小学生学习阅读平台785j5(程序+源码+数据库+调试部署+开发
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景在当今信息化时代,阅读对于小学生而言不仅是获取知识的重要途径,也是培养思维能力和文化素养的关键环节。然而,传统的学习方式往往受限于......
  • Springboot基于springbootvue图书馆选座系统设计与实现41bpt--程序+源码+数据库+调试
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容随着高校图书馆的规模不断扩大和学生数量的增加,图书馆座位管理成为了一个亟待解决的问题。为了提升座位利用率,优化学生的学习环境,本项目拟设计并实......