ASP .NET CORE 使用 达梦 操作数据库

在 ASP.NET Core 中使用达盟数据库时,我们建议使用 SqlSugar 作为 ORM 框架。
对大梦数据库的支持已可靠运行五年,并经过多次迭代优化。
详细使用指南如下: 1 、安装达盟数据库操作库。
通过NuGet安装Damen数据库支持库:在NuGet包管理器中搜索“Damen”,然后选择第一个正式可供安装的库。
2 . 数据库连接配置 2 .1 连接字符串格式 大盟数据库连接字符串有两种格式。
旧版本:PORT=5 2 3 6 ;DATABASE=DAMENG;HOST=localhost;PASSWORD=SYSDBA;USERID=SYSDBA 新版本:Server=localhost;UserId=SYSDBA;PWD=SYSDBA;DATABASE=带有 schema 的新数据库连接字符串(适用于必须指定 schema 前缀的场景): Server=1 5 3 .1 01 .1 01 :5 2 3 6 ;UserId=SYSDBA;PWD=1 2 3 4 5 6 ;SCHEMA=myshcema;DATABASE=DAMENG 2 .2 初始化 SqlSugarClient vardb=newSqlSugarClient(newConnectionConfig(){ConnectionString="Server=localhost;UserId=SYSDBA;PWD=SYSDBA;DATABASE=new DB",DbType=DbType.Dm,//指定数据库类型为达盟 IsAutoCloseConnection=true//自动关闭连接 }); 3 . 大梦数据库表模式 大梦数据库支持两种表模式。
3 .1 大写表格模式(默认) 表名和字段名,例如STUDENT 表中的ID 和NAME 字段,默认为大写。
无需额外配置,SqlSugar 会为您处理好。
3 .2 驼峰模式(非标准模式) 如果您的表名或字段名包含小写字母,则必须禁用自动转换为大写字母。
vardb=newSqlSugarClient(newConnectionConfig(){ConnectionString="Server=localhost;UserId=SYSDBA;PWD=SYSDBA;DATABASE=new DB" ,DbType=DbType.Dm,IsAutoCloseConnection=true,MoreSettings=newConnMoreSettings(){IsAutoToUpper=false//自动禁用大写转换(需要) SqlSugar5 .1 .3 .4 1 -preview04 或更高版本)}}); 4 、数据库操作示例 4 .1 数据查询 //所有数据查询 varstudents=db.Queryable().ToList();//条件查询 varstudent=db.Queryable().Where(it=>it.Id==1 ).First();//分页查询查询intpageIndex=1 ;intpageSize=2 0;inttotalCount=0;varpageData=db.Queryable().ToPageList(pageIndex,pageSize,reftotalCount); 4 .2 数据插入 //插入并返回受影响的行数 db.Insertable(newStudent{Name="张三"}).ExecuteCommand(); //插入并返回自增ID intid=db.Insertable(newStudent{Name="lee思"}). ExecuteReturnIdentity();//插入并返回雪花ID(需配置) longsnowflakeId=db.Insertable(newStudent{Name="王五"}).ExecuteReturnSnowflakeId(); 4 .3 更新和删除 //数据更新 db.Updateable(newStudent{Id=1 ,Name="Zhao Liu"}).ExecuteCommand(); //删除数据 db.Deleteable().Where(it=>it.Id==1 ).ExecuteCommand(); 5 . 高级功能 5 .1 Dameng 架构 Schema 前缀 如果需要指定 schema 前缀,请升级到 SqlSugar5 .1 .4 .9 0-preview1 0 或更高版本,并在连接字符串中配置: Server=1 5 3 .1 01 .1 9 9 .8 3 :5 2 3 6 ;UserId=SYSDBA;PWD=1 2 3 4 5 6 ;SCHEMA=myshcema;DATABASE=DAMENG 5 .2 Dameng Clob/Text 类型处理 对于 CLOB 或 TEXT 类型字段,必须升级到 SqlSugar5 .1 .4 .9 2 或更高版本,并在实体类中进行配置。
[SugarColumn(SqlParameterDbType=typeof(NClobPropertyConvert))]publicstringDescription{get;set;} 注意:某些用户可能会遇到插入空格的问题。
我们建议将您的驱动程序升级到 SqlSugarCore.Dm1 .3 .0+。
5 .3 关于 GUID禁用 VARCHAR(3 6 ) 在连接字符串中配置:Server=localhost;UserId=SYSDBA;PWD=SYSDBA;DATABASE=new DB;varchar3 6 ToGuid=falsetrue(默认):将数据库中的 VARCHAR(3 6 ) 类型映射到 .NET Guid。
false:映射到 .NET 字符串。
6 . 常见问题及解决方案 6 .1 .NETFramework 下无效 DLL 错误消息:未找到方法 Dm.Comand.DmparameterCollection.get_Parameters。
解决方法:将 SqlSugar 升级到最新版本。
6 .2 大文件 CLOB/BLOB 问题解决方案:通过 NuGet 单独安装最新版本的 SqlSugarCore.Dm。
7 .下载示例代码官方演示地址:GitHub-SqlSugar。
摘要SqlSugar对达盟数据库提供了完整的支持,包括连接配置、表架构适配、CRUD操作以及架构前缀和Clob处理等高级功能。
通过正确配置您的连接字符串和SqlSugar版本,达盟数据库可以在ASP.NET Core中高效运行。

Navicat 技术指引 | 面向达梦的查询解释

Navicat 针对大梦数据库的查询解释功能可以通过分析执行计划帮助用户了解并提高查询性能,并支持可视化、网格和统计信息三种格式(取决于大梦服务器的类型)。
下面详细说明: 一、功能概述 查询说明 提高数据库性能的基本工具,用于展示服务器执行SQL查询的具体步骤。
Navicat Premium(版本 1 7 .3 及更高版本,支持 Dameng DM8 +)集成了此功能,使用户能够直观地分析查询效率并识别性能瓶颈。
(图片:Navicat 查询解释功能界面,展示执行计划的可视化格式) 2 .操作步骤:编写查询语句。
在 Navicat 查询编辑器中输入完整的 SQL 语句(例如 SELECT*FROMtable_nameWHEREcondition)。
打开解释功能来解释整个句子:单击工具栏上的解释按钮,或使用快捷键(默认Ctrl+E)。
部分解释:选择特定语句片段后,单击“解释所选内容”。
查看执行计划 Navicat 向大盟服务器发送 EXPLAIN 命令,服务器返回一个包含以下信息的计划: 操作类型:如全表扫描、索引扫描、排序等。
数据流:每一步之间的数据传递关系。
成本估算:CPU、I/O等资源消耗预测(大梦版本支持时显示)。
3 、执行计划格式 大盟数据库在Navicat中支持以下三种视图(服务器版本需要兼容): 可视化格式以流程图的形式展示查询步骤,通过节点和箭头直观地显示数据流的流程顺序和方向,方便快速识别复杂查询中的性能问题。
网格格式以表格形式列出了每个步骤的详细参数,包括操作对象、访问方式、预估行数等,方便准确分析具体步骤的效率。
统计信息格式为查询执行提供定量数据(例如检查的行数、返回的行数、时间消耗等),以帮助评估不同查询计划的资源使用差异。
4 、实践改进建议:识别高成本操作,重点关注实施计划中的“全表扫描”(TableScan)或“高成本排序”(Sort)步骤。
此类操作通常需要通过添加索引来优化。
如果执行计划显示没有,则验证索引使用期望的索引,检查索引选择性、查询状态匹配或统计信息更新状态。
比较不同的写作方法。
尝试多种方式编写相同的查询(例如调整 JOIN 顺序、使用子查询与连接),并通过比较执行计划成本来确定最佳解决方案。
注重大盟特色。
大盟数据库的分区表、实际视图等特性可能会影响执行计划,必须结合版本特定的文档分析(如DM8 的智能索引选择机制)。
5 .反馈版本兼容性:确保Navicat版本(≥v1 7 .3 )与大盟数据库版本(≥DM8 )匹配。
一些高级功能需要大盟企业版支持。
权限要求:EXPLAIN的实现需要用户拥有对应表的查询权限,部分统计信息需要DBA权限。
动态性能视图:达梦的V$SQL_PLAN视图和其他视图可以帮助验证Navicat显示的执行计划的准确性。
如果您想了解更多关于大盟数据库与Navicat的集成过程,可以参考《Navicatx大盟数据库快速入门指南》或联系技术支持(邮箱:Jojo.huang@navicat.com)。

select * from $version 达梦版本号是什么

在大盟数据库(DM)中,`select*from$version`(实际上应该是`v$version`视图)是查询版本信息的常用方法。
注意不同场景下版本号的解释逻辑。
2 02 5 年及以后版本的外接显示形式进行了调整。
一、基本查询命令及视图说明 1 、核心视图:大盟数据库中用于版本查询的系统视图是`v$version`(注意:用户查询可能有错别字,实际上应该是`v$version`而不是`$version`)。
该视图存储数据库的版本标识信息。
2 . 常用SQL语句:• 显示完整版本信息:`SELECT*FROMv$version;`• 提取关键版本字段:`SELECTbanner||id_codeFROMv$version;`(拼接版本描述和内码)• 简化版本查询:`SELECTCO NCAT(SVR_VERSION,BUILD_VERSION)ASversiontFROMv$instances-logic(2 02 5 及以后版本) 据大梦官方技术社区说明,2 02 5 及以后版本的外部显示格式调整为序列号格式,解释规则如下: 1 、格式结构:`03 1 3 4 2 8 4 3 6 8 -2 02 5 04 2 3 -2 7 09 02 -2 01 4 9 `(`05 `为安全版本,`02 `为标准版本) • 第二位:“2 02 5 04 2 3 ”为版本发布日期 • 第三位: `2 7 09 02 ` 是修订号 (Revision) • 第四位数字:`2 01 4 9 ` 是分支号 (Tag) 2 . 内部和外部 2 版本之间的区别:例如从min 2 版本:`8 .1 .3 .1 00`将不再直接显示,统一以序列号的形式呈现。
•内部基准:某些场景下,可以通过“id_code”分析内部基准版本(如“8 .1 .4 .8 0”),但要注意与授权版本的对应关系 3 .特殊场景说明 1 .多命令查询结果差异:如果“v$ version”和“v$ version”的搜索结果与v$不同。
应适用(大盟官方澄清此观点为权威版本来源)。
2 . 获取隐藏版本号: • 2 02 5 及以后版本无法直接通过SQL显示传统的次版本号(如`8 .1 .3 .1 00`)。
• 替代方法:可以从安装目录下的 JDBC 驱动包(如“DmJdbcDriver8 .jar”)的“MANIFEST.MF”文件分析内部版本号(需要解压 Jar 包才能看到) 4 、最新版本注意事项 1 、外部版本号定义:从 2 02 5 年开始,传统数据库序列号未知,外部版本号未知。
将不再提供点分十进制版本号(例如“8 .1 .3 .1 00”)。
2 、版本确认建议:如需明确版本兼容性或项目需求,建议通过大盟官方技术支持或销售渠道确认具体版本信息。