zoukankan      html  css  js  c++  java
  • ado.net 之 oracle 数据库

    ado.net 操作oracle 数据库 跟操作mssql 的原来基本一样。只是使用不同的命名空间而已。下面举几个例子:

    一。 C#读取oracle数据库的表格

     ///ado.net 读取table 列子  
    ///需要添加命名空间 : using System.Data.OracleClient
    
    //链接字符串
     string connString = @"User ID=system;Password=123456;Data Source=(DESCRIPTION = (ADDRESS_LIST= 
                        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.118)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))";
    //创建链接
     OracleConnection conn = new OracleConnection(connString);
     conn.Open();
     string sql = "select * from help";
     OracleDataAdapter sda_tab = new OracleDataAdapter(sql, conn);
     DataSet ds = new DataSet();
     sda_tab.Fill(ds);
    
     DataTable tb = ds.Tables[0];

    二 。 C# 执行 oracle 语句 返回 受影响的行数

     string connString = @"User ID=system;Password=123456;Data Source=(DESCRIPTION = (ADDRESS_LIST= 
                        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.118)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))";
    //创建链接
     OracleConnection conn = new OracleConnection(connString);
     conn.Open();
     string sql = "select * from help";
     OracleCommand cmd = new OracleCommand(sql, conn);
     int ret = cmd.ExecuteNonQuery(); 

     三。C#执行oracle游标的存储过程

           //智友的业务端
            public static string oconn = "User ID=" + sys.Sa  + ";Password=" + sys.Pwd + ";Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = " + sys.Ip + ")(PORT = " + sys.Dk + "))) (CONNECT_DATA = (SERVICE_NAME = " + sys.Data + ")))";
    
      /// <summary>
            /// 执行存储过程返回搜影响的行数
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="opar"></param>
            /// <returns></returns>
            public static int ExecuteNonQuery(string cmdtxt, string fw, OracleParameter[] sqlParme)
            {
    
                using (OracleConnection cona = new OracleConnection (oconn))
                {
                    cona.Open();
                    using ( OracleCommand  cmd = new OracleCommand("Proc_PXUnit_Pay", cona))
                    {
                        cmd.CommandType = CommandType.StoredProcedure;//说明执行的存储过程
                        cmd.CommandText = cmdtxt;//指定执行的名称
                   
                        //cmd.Parameters.Clear();//先清空  
                        cmd.Parameters.AddRange(sqlParme);//添加参数
                        //添加参数
                        return cmd.ExecuteNonQuery();
                    }
                }
    
                //OracleConnection conA = null;
                //OracleCommand cmd = null;
                //try
                //{
    
                //    conA = new OracleConnection(oconn);
                //    conA.Open();
                //    cmd = new OracleCommand("Proc_PXUnit_Pay", conA);
                //    //cmd = conA.CreateCommand(); 
                //    cmd.CommandType = CommandType.StoredProcedure;//说明执行的存储过程
                //    cmd.CommandText = cmdtxt;//指定执行的名称
                   
                //    //cmd.Parameters.Clear();//先清空  
                //    cmd.Parameters.AddRange(sqlParme);//添加参数
                //    //添加参数
                //    return  cmd.ExecuteNonQuery();
                   
                //}
                //catch (Exception ex)
                //{
                //    throw;
                //}
                //finally
                //{
                //    conA.Close();
    
                //}
            }
                

    四  执行游标的存储过程 返回结果集

     /// <summary>
            /// 调用通过游标调用oracle的存储过程 
            /// </summary>
            /// <param name="cmdtxt">存储过程的名字</param>
            /// <param name="fw"></param>
            /// <param name="sqlParme">存储过程的参数</param>
            /// <returns></returns>
            public static DataSet GetDsByPrec(string cmdtxt, string fw, OracleParameter[] sqlParme)
            {
                OracleConnection conA = null;
                OracleCommand cmd = null;
    
                try
                {
    
                    conA = new OracleConnection(oconn);
                    conA.Open();
                    cmd = new OracleCommand("Proc_PXUnit_Pay", conA);
    
                    cmd.CommandText = cmdtxt;
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Clear();//先清空  
                    //添加参数
                    if (sqlParme != null)
                    {
                        foreach (OracleParameter parme in sqlParme)
                        {
                            cmd.Parameters.Add(parme);
                        }
                    }
                    DataSet ds1 = new DataSet();
                    OracleDataAdapter da1 = new OracleDataAdapter(cmd);//取出数据  
                    da1.Fill(ds1);
                    return ds1;
                }
                catch (Exception ex)
                {
                    throw;
                }
                finally
                {
                    conA.Close();
    
                }
    
            }
  • 相关阅读:
    09_ssh服务器的安装和使用
    08_linux下的文件压缩和解压
    38-自定义异常类
    37-手动抛出异常对象
    DataGrip 2020.1 安装与激活
    36-异常的处理
    35-异常
    node+ajax实战案例(1)
    ajax前后端交互原理(7)
    ajax前后端交互原理(5)
  • 原文地址:https://www.cnblogs.com/cl1006/p/7195892.html
Copyright © 2011-2022 走看看