• ManagedDataAccess连数据库


     

    Oracle官方的托管数据库访问组件,单DLL,Oracle.ManagedDataAccess.dll,不安装Oracle客户端,不区分32/64位, 直接引用即可。

    与非托管程序为Oracle.DataAccess.dll相比,不支持BulkCopy和CustomType等。

    下载

    https://www.oracle.com/database/technologies/odac-downloads.html

    或者

    nuget

    文档

    https://docs.oracle.com/cd/E11882_01/win.112/e23174/toc.htm

     类介绍

    OracleCommand

    OracleCommandBuilder

    OracleConnection

    OracleDataAdapter 

    OracleDatabase 

    OracleDataReader

    OracleError 

    OracleErrorCollection

    OracleException

    OracleInfoMessageEventArgs

    OracleParameter 

    OracleParameterCollection

    OraclePermission

    OraclePermissionAttribute

    OracleRowUpdatedEventArgs

    OracleRowUpdatingEventArgs

    OracleTransaction

    DataSet接收

                DataSet ds = new DataSet();
                string str = @"Data Source=xxx:1521/orcl; User Id=xxx; password=xxx;Pooling=false";
                string sql = "select * from T_MD_SCALE";
                try
                {
                    using (OracleConnection conn = new OracleConnection(str))
                    {
                        conn.Open();
                        if (conn.State == ConnectionState.Open)
                        {
                            OracleDataAdapter da = new OracleDataAdapter(sql, conn);
                            da.Fill(ds, "ds");
                        }
                        //测试
                        Console.ReadKey();
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }

     获得某个表的列名和类型

            static void Main(string[] args)
            {
                DataSet ds = new DataSet();
                string str = @"Data Source=xxx:1521/orcl; User Id=xxx; password=xxx;Pooling=false";
                string sql = "select * from T_MD_SCALE";
                try
                {
                    using (OracleConnection conn = new OracleConnection(str))
                    {
                        conn.Open();
                        if (conn.State == ConnectionState.Open)
                        {
                            OracleCommand cmd = new OracleCommand(sql, conn);
                            OracleDataReader reader = cmd.ExecuteReader();
                            for (int i = 0; i < reader.FieldCount; i++)
                            {
                                //
                                Console.WriteLine("列名是:"+reader.GetName(i));
                                Console.WriteLine("该列类型:" + reader.GetFieldType(i));
                                Console.WriteLine("-----------------------------");
                            }
                        }
                      //测试
                        Console.ReadKey();
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

     获取表的架构

            static void Main(string[] args)
            {
                DataSet ds = new DataSet();
                string str = @"Data Source=192.166.208.52:1521/orcl; User Id=IMES_PMS1; password=pms1;Pooling=false";
                string sql = "select * from T_MD_SCALE";
                try
                {
                    using (OracleConnection conn = new OracleConnection(str))
                    {
                        conn.Open();
                        if (conn.State == ConnectionState.Open)
                        {
                            OracleCommand cmd = new OracleCommand(sql, conn);
                            OracleDataReader reader = cmd.ExecuteReader();
                            //架构
                            DataTable dt = reader.GetSchemaTable();
                        }
                      //测试
                        Console.ReadKey();
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

    配合上查询数据库的所有表名

    select * from tab

    就可以自定义生成model和dal了

  • 相关阅读:
    Intellij IDEA 使用spring-boot-devtools无效解决办法一
    使用docker安装myql/redis等软件
    mybatis generator插件系列--分页插件
    mybatis generator插件系列--lombok插件 (减少百分之九十bean代码)
    linux设置端口转发(一键设置)
    redis教程(The little redis book中文版)
    Redis 5种数据结构及其使用场景举例--STRING
    String中hashCode方法的线程安全
    java ShutdownHook介绍与使用
    ACM 模板库
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/12835610.html
Copyright © 2020-2023  润新知