Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bisakah kita memiliki 2 Ketergantungan Oracle yang berbeda dari 2 database yang berbeda dalam satu aplikasi asp.net?

pertama-tama panduan langkah demi langkah ini dapat menyelesaikan masalah Anda:Panduan Ketergantungan Oracle

Kedua, ini juga pekerjaan lain yang dapat Anda gunakan untuk melakukan pekerjaan Anda. Ya, bisa saja. Lapisan Database Anda harus berisi 2 kelas yang akan terhubung ke database masing-masing. Plus jangan gunakan ExecuteReader , sebagai gantinya gunakan DataAdapter karena menangani Connection.Open(), Close(), Dispose() itu sendiri.

misalnya

DATABASE1.CS

public class Database1
{
    string sCon = string.Empty;
    OracleConnection OraCon;
    protected string query = string.Empty;
    public Database1()
    {
       sCon = "Data Source=(DESCRIPTION =(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST = 1.1.1.1)(PORT = 12345)))(CONNECT_DATA =(SID = SIDNAME)));User ID=username;Password=pass;";
       OraCon = new OracleConnection(sCon);
    }

    protected DataTable FillDataTableByParam(OracleParameter[] param)
    {
        DataTable oDT = new DataTable();
        OracleCommand OraCom = new OracleCommand(query, OraCon);
        OraCom.Parameters.AddRange(param);
        new OracleDataAdapter(OraCom).Fill(oDT);
        query = "";
        return oDT;
    }
}

DATABASE2.CS

public class Database2
{
    string sCon = string.Empty;
    OracleConnection OraCon;
    protected string query = string.Empty;
    public Database2()
    {
       sCon = "Data Source=(DESCRIPTION =(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST = 1.1.1.1)(PORT = 12345)))(CONNECT_DATA =(SID = SIDNAME2)));User ID=username;Password=pass;";
       OraCon = new OracleConnection(sCon);
    }

    protected DataTable FillDataTableByParam(OracleParameter[] param)
    {
        DataTable oDT = new DataTable();
        OracleCommand OraCom = new OracleCommand(query, OraCon);
        OraCom.Parameters.AddRange(param);
        new OracleDataAdapter(OraCom).Fill(oDT);
        query = "";
        return oDT;
    }
}

Tetapi Anda juga dapat menyimpan 1 kelas di Lapisan Basis Data sehingga dapat diakses untuk 2 basis data, akan terlihat seperti ini:

public class DatabaseLayer
    {
        string sCon = string.Empty;
        OracleConnection OraCon;
        protected string query = string.Empty;
        public DatabaseLayer(string DataBaseSecureName)
        {
           if(DataBaseSecureName ==  "One")
           {
            sCon = "Data Source=(DESCRIPTION =(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST = 1.1.1.1)(PORT = 12345)))(CONNECT_DATA =(SID = SIDNAME)));User ID=username;Password=pass;";
           }
           else if (DataBaseSecureName ==  "Second")
           {
            sCon = "Data Source=(DESCRIPTION =(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST = 1.1.1.1)(PORT = 12345)))(CONNECT_DATA =(SID = SIDNAME2)));User ID=username;Password=pass;";
           }

           OraCon = new OracleConnection(sCon);
        }

        protected DataTable FillDataTableByParam(OracleParameter[] param)
        {
            DataTable oDT = new DataTable();
            OracleCommand OraCom = new OracleCommand(query, OraCon);
            OraCom.Parameters.AddRange(param);
            new OracleDataAdapter(OraCom).Fill(oDT);
            query = "";
            return oDT;
        }
    }

Anda dapat menambahkan metode ke Kelas/Kelas yang saya tulis di atas dengan logika untuk mengembalikan pemberitahuan tentang perubahan koneksi, dan kemudian menggunakannya sesuka Anda.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membuat tabel dari kueri menggunakan tablespace yang berbeda (Oracle SQL)

  2. Masalah Ganjil Keanggotaan ASP

  3. Dapatkan jam kelas yang tersedia antara rentang waktu tanggal

  4. Urutkan karakter di varchar2 menurut abjad

  5. Konversikan keep density_rank dari kueri Oracle menjadi postgres