.NET

一、获取 DmProvider 驱动

可访问达梦云适配中心下载试用,下载 DM8 数据库试用版,在数据库安装路径 drivers 目录下,找到对应驱动程序,请参考 DM 数据库安装

二、通过 DmProvider 连接数据库

使用 DmProvider 时需要注册 .NET 驱动,例如通过 DbProviderFactories 类调用 DmProvider 创建连接,NHibernate 及 EFDmProvider 的使用,都需要注册 .net 驱动。

2.1 注册 DmProvider

使用 NETFX 注册 DmProvider 驱动

我的电脑路径在 C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8.1 Tools

执行以下命令

gacutil.exe  /if  C:\Users\Administrator\source\repos\EFDMDem\EFDMDem\bin\Debug\DmProvider.dll

记得用管理员启动

如果出现以下则是没有权限

image.png

使用管理员使用此命令,出现下图说明添加成功

image.png

2.2 读取达梦 dll 公钥

此步骤可以不做,达梦此驱动公钥都是 7a2d44aa446c6d01,没有跟随版本变化

我的 NETFX 路径位于 C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8.1 Tools

执行以下命令读取公钥

SN -T C:\Users\Administrator\source\repos\EFDMDem\EFDMDem\bin\Debug\DmProvider.dll

image.png

2.3 修改 machine.config

C:\Windows\Microsoft.NET\Framework 下找到使用的版本里面修改 machine.config 配置

我的电脑路径为 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config

在配置文件 machine.config 中添加以下内容:

<DbProviderFactories>
<add description="DM .Net Framework Data Provider" invariant="Dm" name="DM Data Provider" type="Dm.DmClientFactory,  DmProvider,  Version=1.1.0.0,  Culture=neutral,PublicKeyToken=7a2d44aa446c6d01"/>   
</DbProviderFactories>
注意

记得在里面搜索DbProviderFactorie,里面默认使用了DbProviderFactorie标签,配置文件只允许有一个DbProviderFactorie标签,找到标签位置,进行修改。

例如通过 DbProviderFactories 类调用 DmProvider 创建连接使用 .NET 驱动的情况,using System.Data.Common,如下所示:

using System.Data.Common;
using System;

namespace EFDMDem
{
    class ProcDemo
    {
        public static void Main()
        {
            DbProviderFactory factory = DbProviderFactories.GetFactory("Dm");
            DbConnection sconn = factory.CreateConnection();
            sconn.ConnectionString = "Server=localhost; UserId=SYSDBA; PWD=*****";
            sconn.Open();
            DbCommand scmd = factory.CreateCommand();
            scmd.Connection = sconn;
            try
            {
                scmd.CommandText = "CREATE TABLE TEST(ID INT)";
                scmd.ExecuteNonQuery();
            }
            catch (Exception)
            { }
        }
    }
}

登陆达梦管理工具进行查看,发现表已经添加成功

image.png

微信扫码
分享文档
扫一扫
联系客服