备忘录:关于.net程序连接Oracle数据库
志铭-2021年12月7日 21:22:15
关于使用MSSM访问Oracle数据库
- 安装访问接口组件:OraOLEDB.Oracle
- 官网可以下载,但是需要注册
- 下载地址:https://pan.baidu.com/s/1OpYmpReEJcPg4wNESWy61Q
- 要求服务器至少安装. net2.0和. net3.5
- 我参考的教程:http://www.manongjc.com/article/11212.html
- 我本机win10,SQLSERVER2019
- 安装该教程中需要注意的是:
-
在修改了环境变量后,不需要修改注册表的操作
-
创建链接服务器时,数据源参数IP/sid ,不需要使用端口
-
参考2: https://blog.csdn.net/weixin_42996498/article/details/88717706
-
关于. net 程序中连接Oracle数据库
-
使用Oracle.ManagedDataAccess.Client.dll
- 该程序集对.net无版本要求
- nuget:Install-Package Oracle.ManagedDataAccess -Version 19.13.0
- 注意我没有使用最新21.4.0版本,该最新版本依赖另外一个类库System.Text.Json (>= 5.0.2),而且对.net版本有要求
-
注意:注意不要使用System.Data.OracleClient,vs会提示过时
-
关于Oracle数据库连接字符串格式参考:
<connectionStrings> <add name="connStringForOracle" connectionString="user id=用户ID;password=密码;data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=服务IP地址)(PORT=端口号))(CONNECT_DATA=(SERVER=服务名)(SERVICE_NAME=服务名)))" /> </connectionStrings>
-
简易的封装一个Oracle辅助类:
//添加命名空间:using Oracle.ManagedDataAccess.Client; public class OracleHelper { private static readonly string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["connStringForOracle"].ToString(); //创建连接对象 public static OracleConnection GetConn() { var conn = new OracleConnection(connectionString); conn.Open(); return conn; } //执行非查询语句返回受影响行数 public static int ExecuteNoQuery(string sql,CommandType type=CommandType.Text,params SqlParameter[] param) { using (var conn = GetConn()) { using (OracleCommand cmd=new OracleCommand (sql,conn)) { if (null!=param) { cmd.Parameters.AddRange(param); } cmd.CommandType = type; conn.Open(); return cmd.ExecuteNonQuery(); } } } //返回查询结果的第一行第一个单元格的数据 public static object ExecuteScalar(string sql,CommandType type=CommandType.Text,params SqlParameter[] param) { using (var conn = GetConn()) { using (OracleCommand cmd=new OracleCommand(sql,conn)) { if (null!=param) { cmd.Parameters.AddRange(param); } cmd.CommandType = type; conn.Open(); return cmd.ExecuteScalar(); } } } //返回查询结果集 public static DataSet GetDataSet(string sql, CommandType type = CommandType.Text, params SqlParameter[] param) { using (var conn = GetConn()) { using (OracleDataAdapter adapter = new OracleDataAdapter(sql, conn)) { if (null != param) { adapter.SelectCommand.Parameters.AddRange(param); } adapter.SelectCommand.CommandType = type; DataSet ds = new DataSet(); adapter.Fill(ds); return ds; } } } }
出处:https://www.cnblogs.com/shanzhiming/p/15657204.html
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/15662608.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
2015-12-08 算法:10元可以喝几瓶啤酒?