C#.Net 操作达梦数据库Demo
1、使用vs创建控制台项目,类库为 4.6.1
2、使用NuGet 引入 达梦数据提供器 DmProvider
安装DmProvider 后的变化
3、具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | 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:\dmdbms\drivers\dotNet\readme.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 达梦.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驱动加载到程序集中。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现