达梦数据库在.NET中 的使用

        

一、环境搭建

1.安装Visual Studio2022

NuGet Gallery | Downloads

VS 2017及以上版本已经内置了NuGet,不需要再下载

Nuget是.NET程序包管理工具(类似linux下的npm等),程序员可直接用简单的命令行(或VS)下载包。好处:

(1)避免类库版本不一致带来的问题。GitHub是管理源代码的,这个是管理生成的类库/包的。

(2)可自动处理类库依赖:

(3)可指定下载历史版本: install-package name –version 1.0.2

(4)可部署私有包服务器: Overview of Hosting Your Own NuGet Feeds | Microsoft Docs

2.达梦8数据库安装

二、新建项目

1.创建项目

2.使用 .NET Core 的桌面开发

安装了具有 .NET 桌面开发工作负载的 Visual Studio 2022 版本 17.0.0 预览版 选择此工作负载时,将自动安装 .NET 6 SDK

基于c#开发.net应用

 3.配置项目

4.选择框架版本

5. 使用NuGet 引入 达梦数据提供器 DmProvider  

 

6.编辑Program.cs文件

三、编写代码

DM .NET Provider使用DMConnection对象提供与DM数据库的连接。DM .NET Provider 支持连接字符串格式。

static DmConnection cnn = new DmConnection();

连接数据库

cnn.ConnectionString = "Server=192.168.124.145; UserId=SYSDBA; PWD=dmsysdba2022";

调用增删改查和大字段处理方法

Program demo = new Program();

                //demo.AddFunc();       //新增

                //demo.DeleteFunc();    //删除

                //demo.UpdateFunc();    //修改

                demo.QueryFunc();     //查询

                //demo.BinaryFunc();      //大字段处理

//新增方法

        public void AddFunc()

        {

            var command = cnn.CreateCommand();

            try

            {

                command.CommandText = "INSERT INTO TEST.T_USER(ID,NAME,PHONE) VALUES (39,'三国演义','176000000')";

                command.ExecuteNonQuery();

                string a, b, c;

                command.CommandText = "SELECT ID,NAME,PHONE FROM TEST.T_USER; ";

                var reader = command.ExecuteReader();

                while (reader.Read())

                {

                    a = reader.GetString(0);

                    b = reader.GetString(1);

                    c = reader.GetString(2);

                    //d = reader.GetString(3);

                    Console.WriteLine("ID:" + a);

                    Console.WriteLine("NAME:" + b);

                    Console.WriteLine("PHONE:" + c);

                    // Console.WriteLine("EMALL:" + d);

                    Console.WriteLine("-------------------");

                }

            }

            catch (Exception ex)

            {

                Console.WriteLine(ex.Message);

                ret = 0;

            }

        }

//删除方法

        public void DeleteFunc()

        {

            var command = cnn.CreateCommand();

            try

            {

                command.CommandText = "DELETE FROM TEST.T_USER WHERE ID = 99";

                command.ExecuteNonQuery();

                string a, b, c;

                command.CommandText = "SELECT ID,NAME,PHONE FROM TEST.T_USER; ";

                var reader = command.ExecuteReader();

                while (reader.Read())

                {

                    a = reader.GetString(0);

                    b = reader.GetString(1);

                    c = reader.GetString(2);

                    //d = reader.GetString(3);

                    Console.WriteLine("ID:" + a);

                    Console.WriteLine("NAME:" + b);

                    Console.WriteLine("PHONE:" + c);

                    //Console.WriteLine("EMALL:" + d);

                    Console.WriteLine("-------------------");

                }

            }

            catch (Exception ex)

            {

                Console.WriteLine(ex.Message);

                ret = 0;

            }

        }

//修改方法

        public void UpdateFunc()

        {

            var command = cnn.CreateCommand();

            try

            {

                command.CommandText = "UPDATE TEST.T_USER SET NAME = 'HAP' WHERE ID = 11";

                command.ExecuteNonQuery();

                string a, b, c;

                command.CommandText = "SELECT ID,NAME,PHONE FROM TEST.T_USER; ";

                var reader = command.ExecuteReader();

                while (reader.Read())

                {

                    a = reader.GetString(0);

                    b = reader.GetString(1);

                    c = reader.GetString(2);

                    //d = reader.GetString(3);

                    Console.WriteLine("ID:" + a);

                    Console.WriteLine("NAME:" + b);

                    Console.WriteLine("PHONE:" + c);

                    //Console.WriteLine("EMALL:" + d);

                    Console.WriteLine("-------------------");

                }

            }

            catch (Exception ex)

            {

                Console.WriteLine(ex.Message);

                ret = 0;

            }

        }

//查询方法

        public void QueryFunc()

        {

            DmCommand command = new DmCommand();

            command.Connection = cnn;

            try

            {

                string a, b, c;

                command.CommandText = "SELECT NAME,PHONE,EMAIL FROM TEST.T_USER; ";

                DmDataReader reader = command.ExecuteReader();

                while (reader.Read())

                {

                    a = reader.GetString(0);

                    b = reader.GetString(1);

                    c = reader.GetString(2);

                    Console.WriteLine("NAME:" + a);

                    Console.WriteLine("PHONE:" + b);

                    Console.WriteLine("EMAIL:" + c);

                    Console.WriteLine("-------------------");

                }

            }

            catch (Exception ex)

            {

                Console.WriteLine(ex.Message);

                ret = 0;

            }

        }

      //大字段插入方法

        public void BinaryFunc()

        {

            DmCommand command = new DmCommand();

            command.Connection = cnn;

            try

            {

                FileInfo fi = new FileInfo(@"C:\Users\黄爱萍\Desktop\微信图片_20220328144544.jpg");

                FileStream fs = fi.OpenRead();

                int nBytes = (int)fs.Length;

                byte[] dataArray = new byte[nBytes];

                fs.Read(dataArray, 0, nBytes);

                fs.Close();

                //command.CommandText = "UPDATE TEST.PRODUCT SET PHOTO = :PHOTO WHERE PRODUCTID = 3";    //更新

                command.CommandText = "INSERT INTO TEST.PRODUCT(NAME,AUTHOR,PHOTO) VALUES ('HAP','达梦',:PHOTO)"//新增

                DmParameter param1 = new DmParameter(":PHOTO", DmDbType.Binary);

                command.Parameters.Add(param1);

                param1.Value = dataArray;

                command.ExecuteNonQuery();

            }

            catch (Exception ex)

            {

                Console.WriteLine(ex.Message);

                ret = 0;

            }

        }

源码:

链接:https://pan.baidu.com/s/1zbEFudUnnujExyd0ylTkMA 
提取码:gjo6

 达梦社区地址:https://eco.dameng.com

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
达梦数据库,可以使用GROUP BY子句来实现类似于MySQL的Group_Concat(expr)函数的功能。GROUP BY子句用于根据指定的列对结果进行分组,并且可以结合聚合函数来对每个分组进行计算。在达梦数据库,可以使用GROUP BY子句和GROUP_CONCAT函数来实现类似的功能。GROUP_CONCAT函数用于将每个分组的多个值合并为一个字符串,并且可以使用特定的分隔符进行分隔。 例如,以下是在达梦数据库使用GROUP BY和GROUP_CONCAT函数将多个值合并为一个字符串的示例: SELECT column1, GROUP_CONCAT(column2 SEPARATOR ',') FROM table GROUP BY column1; 这个查询将根据column1列对表的数据进行分组,并将每个分组的column2列的多个值合并为一个字符串,使用逗号作为分隔符。 需要注意的是,在达梦数据库,语法和函数名称可能会有所不同,因此具体的语法和函数名称可能需要根据实际情况进行调整。可以参考达梦数据库的官方文档或咨询相关支持来获取更详细的信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [达梦数据库迁移之group by 替换](https://blog.csdn.net/weixin_44907192/article/details/123328932)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [达梦数据库的GROUP BY语句](https://blog.csdn.net/Oraclesand/article/details/126870609)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值