在我的應用程序中,我有一個DataSet可以保存以不同形式使用的表格,遍及我的應用程序。 爲了能夠形式之間保持併發性,並且不必每次用戶打開一個新的形式,時間從數據庫中獲取數據,我認爲我的數據集作爲一個靜態字段在程序類是這樣的:使用靜態數據集作爲數據源
static class Program
{
public static CustomDataSet StockDataSet { get; private set; }
[STAThread]
static void Main()
{
StockDataSet = new Database.CustomDataSet();
StockDataSet.InitRelations();
StockDataSet.EnforceConstraints = false;
StockDataSet.Categories.Fill();
StockDataSet.Suppliers.Fill();
StockDataSet.StockItems.Fill();
StockDataSet.EnforceConstraints = true;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainWindow());
}
這使得以編程方式使用DataSet變得非常容易。然而,在設計階段工作會造成挫折感。考試;我有一個綁定到BindingSource的DataGridView。如果我希望能夠在設計時使用DataGridView的列,那麼我必須讓我的自定義DataSet的對象可以在InitializeComponent中的BindingSource中訪問。
我想到的所有解決方法都是相當醜陋的黑客。 就像在Designer.cs中使用虛擬對象來保持設計時愉快一樣,然後將靜態對象分配給包含虛擬對象的字段。之後,重置構造函數中的所有綁定。這必須被認爲是非常糟糕的做法,對嗎?
所以我的問題是這樣的:是不是有一個更優雅,或至少有實際的方法呢? 還是有任何建議的最佳做法與多種形式的數據集一起工作?
編輯
股票庫存與庫存相關。對數據不做重大處理,數據保存在本地服務器上的MySql數據庫中。
我真的希望你不要做任何線程 - 這將是純粹的混亂與靜態數據集 – 2011-02-28 13:06:17
不,沒有線程。幸運的是 – JonC 2011-02-28 13:09:27