基于达梦数据库开发-C#篇

news2024/12/23 1:38:16

文章目录

  • 前言
  • 一、相关准备
  • 二、主要代码
    • 1.引入达梦类库
    • 2.连接达梦数据库
    • 3.DmCommand方式获取达梦数据库信息
    • 4.DmDataAdapter方式获取达梦数据库信息
  • 总结


前言

达梦数据库是国产的新一代大型通用关系型数据库,全面支持 SQL 标准和主流编程语言接口/开发框架。其中.NET Data Provider 是 .NET Framework 编程环境下的访问达梦数据库的编程接口,用于连接数据库、执行相关数据库操作。本文将以简单的C#演示工程展示如何获取达梦数据库相关记录信息。


一、相关准备

  • 确保具有可访问的达梦数据库及相关对象
    本文在本地建立了相关的达梦数据库,并创建了对象账号TESTDM,并在该账户下建立相关的表T_CITY_T。表T_CITY_T相关记录如下 在这里插入图片描述

  • 搭建.NET工程,根据相关的.NET框架选择复制对应的类库
    达梦支持的.NET框架有NET20, NET40, NET45,NET50,NET60,NETSTANDARD2.0,NETCOREAPP2.1以及NETCOREAPP3.1,相关的DmProvider.dll 都在达梦数据库的dmdbms\drivers\dotNet 路径下的子文件中 ,本文采用NET40下的DmProvider.dll 搭建相关的演示工程
    在这里插入图片描述

二、主要代码

1.引入达梦类库

当工程引入类库后,在需要连接达梦数据库的cs文件的using区域采用如下方式开始引入达梦类库

using Dm;

2.连接达梦数据库

使用DmProvider提供的DmConnection类建立达梦数据库的连接,示例代码如下

 static DmConnection cnn = new DmConnection();
 cnn.ConnectionString = "Server=localhost;PORT=5236; User Id=testdm; PWD=123456;";
 cnn.Open();

其中ConnectionString 连接子串的Server参数配置具体的ip地址,PORT参数为达梦数据库建立时使用的端口号(默认端口为5236),User为达梦数据库的账号名称,PWD为达梦数据库的账号密码

3.DmCommand方式获取达梦数据库信息

DmProvider提供的DmCommand类来获取相关数据库记录信息,示例代码如下

 DmCommand command = new DmCommand();
            command.Connection = cnn;
            string a;
            command.CommandText = "select * from TESTDM.T_CITY_T";
            var reader = command.ExecuteReader();
            while (reader.Read())
            {
                a = reader.GetString(0);
                Console.WriteLine(a);
            }
            reader.Close();

4.DmDataAdapter方式获取达梦数据库信息

DmProvider还提供的DmDataAdapter类来获取相关数据库记录信息,示例代码如下

 DataTable dt = new DataTable();
            string sql = "select * from TESTDM.T_CITY_T";
            using (DmDataAdapter command1 = new DmDataAdapter(sql, cnn))
            {
                DataSet ds = new DataSet();
                command1.Fill(ds, "ds");
               
                dt = ds.Tables[0];
            }    
            foreach(DataRow  dr in dt.Rows)
            {
                Console.WriteLine("id:" + dr["CITY_ID"].ToString() + ",name:" + dr["CITY_NAME"].ToString());
            }

总结

本文简要讲述了如何使用C#获取达梦数据库记录信息,以示例形式展示了DmConnection、DmCommand、DmDataAdapter的简单使用,以vs2019编写的整体相关示例代码请见
VS2019开发的C#连接达梦简要示例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1608043.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LD-Pruner、EdgeFusion(On-Device T2I)、FreeDiff、TextCenGen、MemLLM

本文首发于公众号:机器感知 https://mp.weixin.qq.com/s/KiyNfwYWU-wBiCO-hE9qkA 苏 The devil is in the object boundary: towards annotation-free instance segmentation using Foundation Models Foundation models, pre-trained on a large amount of data…

arm64-v8a、armeabi-v7a、x86、x86_64

当我们去GitHub下载应用的时候是不是经常很懵逼,就像下图一样,粗看一下如此多安装包到底要选择下载哪个且每种安装包到底有哪差别?毕竟因为自己一无所知,有时便随意下载一个后,安装时却报『此版本与你的系统不兼容』的…

TCP三次握手,但通俗理解

如何用通俗的语言来解释TCP(传输控制协议)的三次握手过程? 想象一下你正在和朋友电话沟通,但你们之间不是心灵感应,而是需要通过清晰地听到对方的声音来确认通话质量良好。TCP三次握手就像是在电话拨通之前&#xff0…

JavaScript 流程控制-循环

一、循环 二、 for 循环 重复执行的语句被称为循环体,能否继续重复执行,取决于循环的终止条件。 由循环体及循环的终止条件组成的语句被称为循环语句 1、语法结构 for 循环 主要用于把某些代码循环若干次,通常跟计数有关 for &#xff08…

C++-命名空间

C 命名空间是一种用于组织代码的机制,可以帮助避免命名冲突,提高代码的可读性和可维护性。命名空间将代码分组到逻辑单元中,允许在不同的代码单元中使用相同的名称而不会产生冲突。 命名空间通过将代码放置在一个命名空间内部来实现。在 C 中…

重构国内游戏账号登录系统的思考和实践

本期作者 背景 账号登录系统,作为游戏发行平台最重要的应用之一,在当前的发行平台的应用架构中,主要承载的是用户的账号注册、登录、实名、防沉迷、隐私合规、风控等职责。合规作为企业经营的生命线,同时,账号登录作为…

解决跨域和https不能访问的问题。

本地安装了项目,是一键安装的,安装之后还是apache的web服务器,有个视频服务用的是https的服务,要对这个项目进行二次开发,本地调用没问题,可是别人已调用就跨域。只能本地访问。 现在有两个问题:1.解决跨域问题 2.还要解决https访问的问题。 解决思路,用nginx 的ssl证…

语雀如何显示 Markdown 语法

正常的文章链接 https://www.yuque.com/TesterRoad/t554s28/eds3pfeffefw12x94wu8rwer8o 访问后是文章,无法复制 markdown 的内容 在链接后增加参数 /markdown?plaintrue&linebreakfalse&anchorfalse 直接显示代码

力扣经典150题第三十题:长度最小的子数组

目录 力扣经典150题解析之三十:长度最小的子数组1. 介绍2. 问题描述3. 示例4. 解题思路方法一:滑动窗口 5. 算法实现6. 复杂度分析7. 测试与验证测试用例设计测试结果分析 8. 进阶9. 总结10. 参考文献感谢阅读 力扣经典150题解析之三十:长度最…

2024面试软件测试,常见的面试题(上)

一、综合素质 1、自我介绍 面试官您好,我叫XXX,一直从事车载软件测试,负责最多的是中控方面。 以下是我的一些优势: 车载的测试流程我是熟练掌握的,且能够独立编写测试用例。 平时BUG提交会使用到Jira,类似…

计算机组成原理【CO】Ch5 中央处理器

目录 大纲 一条指令的执行 取指令 执行指令 数据传送类(mov、load、store) 运算类指令(加、减、乘、除、移位、与、或) 转移类指令(jmp、jxxx) 如何看懂注释 袁版注释⻛格(16年以后的真题&…

草稿 | word格式的网址索引

参考文献引用 参考文献上标设置:(改为上标的快捷键为ctrlshift“”) https://jingyan.baidu.com/article/cbcede07d786c743f50b4d47.html 多个参考文献一起引用: https://blog.csdn.net/neptune4751/article/details/119921187 交…

记录一下因为没等配置文件上传完就跑lg.sh导致f2.sh没起作用的原因

【背景说明】 我正在学习sgg的数仓采集项目,采集内容分为用户行为日志采集和MySQL的业务数据采集。 用户行为日志采集分为2个阶段: 阶段1:将日志文件的数据通过flume采集到kafka。我的这一步正常,kafka上有数据,即f…

Springboot配置文件(application.yml)的加载顺序

spring boot 启动会扫描一下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件 file…/config/ file…/ classpath:/config classpath:/ 以上是按照优先级从高到低的顺序,所有位置的文件都会被加载,高优先级配置内容会…

Linux内核与基础命令学习总结

Linux操作系统 Linux操作系统博大精深,其中对线程,IO,文件系统等概念的实现都很有借鉴意义。 ​ 文件系统和VFS 文件系统的inode上面讲过了。VFS主要用于屏蔽底层的不同文件系统,比如接入网络中的nfs文件系统,亦或是w…

Pytest精通指南(20)日志收集器配置

文章目录 前言配置日志收集验证日志收集拓展-收集断言错误信息拓展-动态生成日志文件拓展-自定义封装日志收集类 前言 在pytest框架中,日志记录(logging)是一个强大的功能,它允许我们在测试期间记录信息、警告、错误等&#xff0c…

MongoDB扩大与谷歌云的合作,助推各行业客户部署和扩展新型应用

亮点前瞻 ● MongoDB Atlas Search Nodes现已在谷歌云(Google Cloud)上全面推出,让客户能够更轻松、更经济高效地隔离和扩展生成式AI工作负载 ●适用于MongoDB Atlas的Google Cloud Vertex AI扩展以及BigQuery与Spark的全新集成&#xff0c…

计算机软考流程介绍

笔者来介绍一下软考流程 1、考试简介 计算机技术与软件专业技术资格(水平)考试:简称 计算机软考 认证: 国家人力资源和社会保障部 国家工业和信息化部 目的: 科学、公正地对全国计算机与软件专业技术人员进行职业资格…

PolarDB MySQL 版 Serverless评测|一文带你体验什么是极致弹性|后续

PolarDB MySQL 版 Serverless评测|一文带你体验什么是极致弹性|后续 弹性压测三后续自动缩容全局一致性测试测评体验 在上一篇PolarDB MySQL 版 Serverless测评博文中:https://developer.aliyun.com/article/1385834 关于弹性压测三通过增加只读节点压测来观测到Ser…

流程图的新语法-mermaid的快速使用--推荐

chatgpt或者现在的大数据采用的流程图给出的代码如下: graph TD;A[接收客户请求] --> B[问题分类];B --> C[技术支持];B --> D[维修服务];C --> E[远程解决];C --> F[现场支持];D --> G[维修完成];G --> H[服务反馈];style A fill:#f9f,strok…