好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

OracleDBHeper

System; using Oracle.ManagedDataAccess; using Oracle.ManagedDataAccess.Types; using Oracle.ManagedDataAccess.Client; using System.Data; using System.Collections.Generic; using Omu.ValueInjecter; using Common.Data; namespace Common.DataBase { public class OracleDBHelper { public static string connStr = string .Empty; public static void IniConnStr( string host, int port, string serverName, string userName, string pwd) { connStr = $ " Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={host})(PORT={port})))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME={serverName})));User Id={userName};Password={pwd}; " ; } public static DataTable GetTable( string sql) { DataTable OutDataTable = new DataTable(); DataRow dataRow; using (OracleConnection con = new OracleConnection(connStr)) { con.Open(); OracleCommand cmd = new OracleCommand(sql, con); string data = string .Empty; OracleDataReader daReader = cmd.ExecuteReader(CommandBehavior.CloseConnection); for ( int j = 0 ; j < daReader.FieldCount; j++ ) { OutDataTable.Columns.Add(daReader.GetName(j)); } while (daReader.Read()) { dataRow = OutDataTable.NewRow(); for ( int j = 0 ; j < daReader.FieldCount; j++ ) { data = daReader[j].ToString(); dataRow[j] = data; } OutDataTable.Rows.Add(dataRow); } return OutDataTable; } } public static IEnumerable<T> GetEnumerable<T>( string sql) where T : new () { using (OracleConnection con = new OracleConnection(connStr)) { con.Open(); OracleCommand cmd = new OracleCommand(sql, con); OracleDataReader daReader = cmd.ExecuteReader(CommandBehavior.CloseConnection); while (daReader.Read()) { var o = new T(); o.InjectFrom <ReaderInjection> (daReader); yield return o; } } } public static object ExecuteScalar( string sql) { using (OracleConnection con = new OracleConnection(connStr)) { con.Open(); OracleCommand cmd = new OracleCommand(sql, con); return cmd.ExecuteScalar(); } } public static void ExecuteNoneQuery( string sql) { using (OracleConnection con = new OracleConnection(connStr)) { con.Open(); OracleCommand cmd = new OracleCommand(sql, con); cmd.ExecuteNonQuery(); } } } }

以上代码中用到的ReaderInjection的代码如下

 using   System;
  using   System.Collections.Generic;
  using   System.Data;
  using   System.Linq;
  using   System.Text;
  using   Omu.ValueInjecter;

  namespace   Common.Data
{
      public   class  ReaderInjection : KnownSourceValueInjection<IDataReader> 
    {
          protected   override   void  Inject(IDataReader source,  object   target)
        {
              for  ( var  i =  0 ; i < source.FieldCount; i++ )
            {
                  var  activeTarget = target.GetProps().GetByName(source.GetName(i), true  );
                  if  (activeTarget ==  null )  continue  ;

                  var  value =  source.GetValue(i);
                  if  (value == DBNull.Value)  continue  ;

                activeTarget.SetValue(target, value);
            }
        }
    }
} 

 

OracleDBHeper

标签:datarow   use   HERE   code   ica   open()   rabl   bsp   rom   

查看更多关于OracleDBHeper的详细内容...

  阅读:28次