在我的应用程序中,我有一个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