सबसे पहले यह चरण दर चरण मार्गदर्शिका आपकी समस्या का समाधान कर सकती है:Oracle निर्भरता गाइड
दूसरे, यह एक और काम है जिसका इस्तेमाल आप अपना काम करने के लिए कर सकते हैं।हाँ हो सकता है। आपकी डेटाबेस परत में 2 वर्ग होने चाहिए जो संबंधित डेटाबेस से जुड़ेंगे। साथ ही ExecuteReader
का उपयोग न करें , इसके बजाय DataAdapter
. का उपयोग करें क्योंकि यह कनेक्शन को हैंडल करता है। ओपन (), क्लोज (), डिस्पोजल () ही।
उदाहरण के लिए
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;
}
}
लेकिन आप अपने डेटाबेस लेयर में 1 वर्ग भी रख सकते हैं, जिससे यह 2 डेटाबेस के लिए सुलभ हो जाएगा, यह कुछ इस तरह दिखाई देगा:
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;
}
}
आप कनेक्शन के परिवर्तन पर अधिसूचना वापस करने के लिए तर्क के साथ ऊपर लिखी गई कक्षाओं/कक्षा में एक विधि जोड़ सकते हैं, और फिर इसे अपनी इच्छानुसार उपयोग कर सकते हैं।