我是WPF(和通用應用程序開發)的新手,我想連接到我的數據庫並使用該連接在我的所有Model類中查詢它。我已經寫在連接字符串中的主窗口後面的代碼在所有類中使用一個數據庫連接
public partial class MainWindow : Window
{
DBConnection db = new DBConnection();
public MainWindow()
{
InitializeComponent();
Connect();
}
...etc
而DBConnection的類看起來像這樣
class DBConnection
{
private OracleConnection connection;
private OracleCommand command;
private bool autoDisconnect;
public void Connect(bool autoDisconnect = true)
{
this.autoDisconnect = autoDisconnect;
try
{
if (connection == null)
{
connection = new OracleConnection("CONNECTION DETAILS");
}
if (connection.State != ConnectionState.Open)
{
connection.Open();
}
}
catch (OracleException ex)
{ }
}
..... etc
,但我想某處創建連接和db
對象,因此,在我所有的模型可以直接調用DBConnection
類,而無需創建新的對象,每次
例如,這裏有一個模型
public class Authentication
{
string username;
string password;
public static bool Authenticate(string UserName, string Password)
{
db.SetSQL("SQL STATEMENT HERE");
db.ExecuteTransactions();
}
...etc
其中SetSQL
和ExecuteTransactions
是的DBConnection的類
那麼,和我怎麼能(簡單)連接到數據庫,所以它會在整個應用程序是恆定的方法呢?它只是一個窗口與不同UserControls所以我認爲它可以連接在主窗口代碼後面
不是一個好主意。連接是一種寶貴的資源,不應該在應用程序的整個生命週期內保留。這可能是您服務器端的一個很好的啓動工具。他們應該儘快創建,使用和處置。搜索有關Oracle和您的提供商的連接池(Microsoft,Oracle或....) – Steve
如果你想在@史蒂夫的評論後堅持你的想法。我建議你閱讀兩件事情:單身(對他們來說很容易,他們有特定的用例),更重要的是'static'關鍵字。 – Sidewinder94
@Steve,我不知道!所以我應該在需要使用它時打開連接(如驗證登錄)並在之後關閉它(登錄),然後再次打開/關閉每個單獨的CRUD操作? – North