zoukankan      html  css  js  c++  java
  • C#.Net 操作达梦数据库Demo

    1、使用vs创建控制台项目,类库为 4.6.1

     2、使用NuGet 引入 达梦数据提供器 DmProvider 

    安装DmProvider 后的变化

     3、具体代码

    using System;
    using Dm;
    
    namespace ConsoleApp1
    {
        class Program
        {
            //返回结果
            private static int ret = 1;
            static DmConnection cnn = new DmConnection();
    
            static void Main(string[] args)
            {
                try
                {
                    cnn.ConnectionString = "Server=localhost; User Id=SYSDBA; PWD=SYSDBA";
                    cnn.Open();
                    Program program = new Program();
                    program.TestFunc();
                    cnn.Close();
    
    
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
    
            public void TestFunc()
            {
                DmCommand command = new DmCommand();
                command.Connection = cnn;
                try
                {
                    string a, b, c;
                    command.CommandText = "select * from Production.Product;";
                    var reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        a = reader.GetString(0);
                        b = reader.GetString(1);
                        c = reader.GetString(2);
    
                        Console.WriteLine("Name:" + a);
                        Console.WriteLine("Author: " + b);
                        Console.WriteLine("Publisher: " + c);
                        Console.WriteLine("-----------------------------");
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    ret = 0;
    
                }
            }
        }
    }
    

    4、运行,报错!!!

     

     结果各种百du无果,后来想到到用官方数据库自带的DmProvider.dll 试试,如果你安装了达梦数据库,在这个目录有个2.0版的,用这个就正常了!

     

     运行结果如下,在安装达梦数据库的时候,把示例数据库也安装上去吧!

     

     备注:在达梦数据库安装目录有个文本说明文件:

    D:dmdbmsdriversdotNet eadme.txt

    达梦.Net驱动分为DmProvider、EFDmProvider、EFCore.Dm、DmDialect和DmConnect。
    
    DmProvider可以在.NET框架和NETCore框架下使用,NETCore框架下需要用户安装System.Text.Encoding.CodePages包或者直接以NUGET包的形式安装DmProvider,可以自动依赖的System.Text.Encoding.CodePages包
    
    其中EFDmProvider是支持Entity Framework框架的驱动,它与数据库交互的部分由DmProvider完成,所以如果程序中需要使用EFDmProvider,需要同时引用DmProvider
    DmConnect是达梦提供给VS的DDEX驱动,它也引用了DmProvider。
    
    EFCore.Dm已支持EFCore2.1版本
    
    DmDialect方言包有for Nhibernate3、for Nhibernate4、for Nhibernate5分别对应NET3.5、NET4、NET4.6.1;用户可根据开发环境选择对应的方言包版本;
    Nhibernate中App.config配置要求:
    1、驱动名称
    <property name="connection.driver_class">NHibernate.Driver.DmDriver, DmDialect, Version=1.0.0.0, Culture=neutral, PublicKeyToken=072d25982b139bf8</property> 
    2、方言包名称
    <property name="dialect">NHibernate.Dialect.DmDialect, DmDialect, Version=1.0.0.0, Culture=neutral, PublicKeyToken=072d25982b139bf8</property>
    
    
    文件结构说明:
    DmProvider文件夹中是完整的DmProvider驱动文件。使用DmProvider的DmBulkCopy对象,需要引用dmfldr_dll.dll以及此dll依赖的其他库。
    EFDmProvider文件夹中是老版本的EFDmProvider,已不再更新版本。
    EFDmProvider6.1.3-net40文件夹中是基于EntityFramework6.1.3及.Net4.0的EFDmProvider 2.0版本。
    EFDmProvider6.1.3-net45文件夹中是基于EntityFramework6.1.3及.Net4.5的EFDmProvider 2.0版本。
    DmConnect文件夹中是DmConnect驱动及所需文件。
    DmDialect文件夹是不同版本NHibernate的方言包
    gacutil.exe是全局程序集缓存工具,使用它可以将.Net驱动加载到程序集中。
    

      

  • 相关阅读:
    范仁义css3课程---33、背景3( background-attachment )
    范仁义css3课程---34、背景4( 背景简写属性 )
    范仁义css3课程---32、背景2( background-position)
    范仁义css3课程---31、背景1( background-image)
    关于Android Canvas.drawText方法中的坐标参数的正确解释
    android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)
    Android中自定义属性(attrs.xml,TypedArray的使用)
    推荐
    intent的startActivityForResult()方法
    Android利用Gson解析嵌套多层的Json
  • 原文地址:https://www.cnblogs.com/wanghaibin/p/13576376.html
Copyright © 2011-2022 走看看