备忘录:关于.net程序连接Oracle数据库

备忘录:关于.net程序连接Oracle数据库

目录
  • 关于使用MSSM访问Oracle数据库
  • 关于. net 程序连接Oracle数据库

志铭-2021年12月7日 21:22:15

关于使用MSSM访问Oracle数据库

  • 安装访问接口组件:OraOLEDB.Oracle
  • 参考教程: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;                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;                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;            }        }    }}
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部