.net 操作达梦数据库

一,简介

偶然看到了国产数据库——达梦数据库。顿时起了兴趣,捣鼓了一番。

下面这段简介摘自百度百科

达梦数据库是武汉华工达梦数据库有限公司推出的具有完全自主知识产权的高性能数据库产品。它采用“三权分立”的安全管理机制,安全级别达到B1级,并在大数据量存储管理、并发控制、数据查询优化处理、事务处理、备份与恢复和支持SMP系统等诸多方面都有突破性进展和提高。更多介绍:达梦数据库_百度百科

达梦数据库有免费版和收费版(感觉国人就是有点急功近利)。

免费版下载地址:https://www.dameng.com/

有Windouws版和Linux版。

二,安装

我这里选择Windows版下载,当前版本6.2,UI还是做得很漂亮的。 

安装过程很简单,一路“下一步”就行了:

2.1) 选择语言版本

2.2) 选择验证Key文件,免费版的下载包里提供了验证文件。 

2.3)设置初始化参数 

 2.4)修改数据库口令(密码),当然也可以无视它。默认密码是: SYSDBA

三,使用

3.1) 打开管 “理工具Manager”登陆 

输入安装时设置的口令,如果安装时没有修改口令,则输入初试默认口令“SYSDBA” 

3.2) 登陆进去后看到系统默认有两个数据库“SYSTEM”、“BOOKSHOP”。这里我自己新建了一个叫“Cnblogs”的数据库。新建很简单,和操作SQLServer差不多。 

 3.3) 点开“cnblogs”节点,会发现,它不像SQLServer那样,下面直接是“表”、“视图”等。

它下面是“模式”,一个数据库可以有多个模式,模式下面才会有“表”、“视图”等等。

 模式用来代表特定数据库中的一个对象集,在概念上可将其看作是包含表、视图、索引和权限定义的对象集合。一个模式只作用于一个数据库,不同的数据库可以有同名模式。

 我在模式“SYSDBA”下面建了个“Users”表。

3.4) 达梦SQL  

因为达梦数据库有一个“模式”的概念,因此它的查询语句和SQLServer 也有所不同,要在“表”前加上“模式”。如:

select  *  from  SYSDBA.Users

 当然你也可以不加,直接像在SQLServer 里那样,写成 

   

select * from  Users 

这时它会默认使用SYSDBA模式。

三、ORM 操作达梦数据库

.net framework 安装 sqlsugar

.net 5&.net core  安装sqlsugarcore

nuget只需要引用一个dll文件,开箱就用简单方便

1278533-20171125175246750-2063556376.png

四、连接字符串

 更接近Oracle,更偏向自主研发,对开发人员友好度不如金仓 

 至于其它国产数据库基本上都和PgSql 99.9%一样,建议你们还是用人大金仓比较省心

 连接字符串:

 老版本 :PORT=5236;DATABASE=DAMENG;HOST=localhost;PASSWORD=SYSDBA;USER ID=SYSDBA

 新版本: Server=localhost; User Id=SYSDBA; PWD=SYSDBA;DATABASE=新DB

五、CURD

创建数据库对象

 //创建数据库对象 SqlSugarClient   

 SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
 {
            ConnectionString = "Server=.xxxxx",//连接符字串
            DbType = DbType.Dm, //设置为达梦
            IsAutoCloseConnection = true //不设成true要手动close
 });

查询

db.Queryable<Student>().ToList()//查询所有
db.Queryable<Student>().Where(it=>it.Id==1).ToList()//根据条件查询

//分页
  int pageIndex = 1; // pageindex是从1开始的不是从零开始的
  int pageSize = 20;
  int totalCount=0;
  //单表分页
  var page = db.Queryable<Student>().ToPageList(pageIndex, pageSize, ref totalCount);

插入

//返回插入行数
db.Insertable(insertObj).ExecuteCommand(); //都是参数化实现
 
//插入返回自增列
db.Insertable(insertObj).ExecuteReturnIdentity();
 
//返回雪花ID 看文档3.1具体用法(在最底部)
long id= db.Insertable(实体).ExecuteReturnSnowflakeId();

删除

//单个实体
db.Deleteable<Student>().Where(new Student() { Id = 1 }).ExecuteCommand();
 
//List<实体>
List<Student> list=new List<Student>(){
  new Student() { Id = 1 }
};
db.Deleteable<Student>(list).ExecuteCommand(); //批量删除

更新

//根据主键更新单条 参数 Class
var result= db.Updateable(updateObj).ExecuteCommand();
 
 
//批量更新参数 List<Class>
var result= db.Updateable(updateObjs).ExecuteCommand();

源码:

https://github.com/donet5/SqlSugar

在Windows操作系统上,有多种方式可以启动和关闭达梦数据库(DM数据库)。首先,可以使用菜单方式启动和关闭DM数据库。在开始菜单中选择DM服务查看器,可以启动和关闭数据库实例。另外,也可以使用Windows服务方式来启动和关闭DM数据库。在Windows服务中,会有一个与DM实例名对应的服务,可以通过服务控制台来启动和关闭数据库。此外,还可以使用命令行方式来启动和关闭DM数据库。在DM安装目录的bin目录下,可以直接打开dmserver应用程序来启动数据库,或者在命令提示符工具中执行dmserver命令来启动数据库。需要注意的是,命令行方式是前台启动数据库。\[1\] 对于Linux系统,启动和关闭DM数据库的方式与Windows类似。可以使用菜单方式,在开始菜单中选择启动服务器菜单项来启动数据库。另外,也可以使用Linux服务方式,在/etc/rc.d/init.d目录下找到以DmService开头的文件,文件名为DmService+实例名,通过执行相应的命令来启动和关闭数据库。此外,还可以使用命令行方式,在DM安装目录的bin目录下执行./dmserver命令来启动数据库。\[2\] 如果你的QT程序是64位的,那么需要下载win64的达梦数据库,如果是32位的QT程序,则需要下载win32的达梦数据库。否则,在连接数据库时可能会出现“驱动程序和应用程序之间的体系结构不匹配”的错误。\[3\] #### 引用[.reference_title] - *1* *2* [达梦数据库的启动和关闭](https://blog.csdn.net/weixin_54008028/article/details/114577329)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Windows Qt连接达梦数据库](https://blog.csdn.net/Sakuya__/article/details/128323969)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值