好的,所以這是一種有見地的話題,但是根據你的知識,觀點和當前的實踐,設置下面的場景最好的方法是什麼?C#數據連接最佳實踐?
我建立了廣泛的數據錄入應用程序,並通過廣泛我的意思是,我只掌握了一些基本設置,其中包含周圍15-25%的整體方案,我有大約15多種形式的有部分設置。 (他們仍然需要工作)我使用SQL Compact 4.0作爲我的後端數據庫,我並不需要更大的數據庫,因爲我不存儲MMO的數據,目前這只是本地應用程序。
我希望能夠將其設置爲單個窗口,只是根據菜單系統改變爲各種不同的頁面,但我似乎無法找到一個很好的教程,所以如果有人知道,請賜教。
但是,有問題的場景是如何連接到數據庫。我使用2個SQLCE數據庫,一個存儲基於服務和人員的常量數據,另一個存儲不斷變化的數據或基於第一個數據庫輸入的新數據。我已經看到了很多不同的方法來設置它,目前我正在使用一個其中包含所有其他形式繼承的BaseForm的方法。在BaseForm中,我擁有許多形式通用的方法和變量,從而最大限度地減少了正在重複的代碼量。
這包括連接字符串兩個數據庫,和方法2可打開的,以其中一方的連接。像這樣:
internal SqlCeConnection dataConn = new SqlCeConnection(@"Data Source = |DataDirectory|\opi_data.sdf");
internal SqlCeConnection logConn = new SqlCeConnection(@"Data Source = |DataDirectory|\opi_logs.sdf");
internal SqlCeCommand command;
internal void openDataConnection() // Opens a connection to the data tables
{
try
{
if(dataConn.State == ConnectionState.Closed)
dataConn.Open();
}
catch(SqlCeException ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
internal void openLogConnection() // Opens a connection to the log tables
{
try
{
if(logConn.State == ConnectionState.Closed)
logConn.Open();
}
catch (SqlCeException ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
然後每當我需要一個開放的連接我簡單地調用對應於我需要訪問數據庫的開放連接方法,然後在最後聲明中關閉它。通過這種方式,連接永遠不會打開很長時間,只是在需要的時候。當然這意味着有很多打開連接方法的調用。那麼這是實施這種場景的最佳方式,還是有更好的方法?
是更好地只想儘快打開連接的形式加載,然後當窗體關閉關閉它?我有多個表單一次打開的實例,每個表單可能需要打開一個到數據庫的連接,所以如果關閉它,那麼其他的就會被搞錯了嗎?還是應該在應用程序啓動時打開兩個數據庫的連接?任何輸入將不勝感激。謝謝。
請在使用聲明中查看此問題http://stackoverflow.com/q/212198/1193596 – Amicable