达梦数据库在.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
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值