在类之间共享数据集

本文关键字:数据集 共享 之间 | 更新日期: 2023-09-27 18:02:02

我的无能迫使我在我的项目中使用不"干净"的解决方案。我得到了一个类中的ADO数据集,需要在winforms和其他类之间共享它。为了实现这一点,我将数据集设为public member。当我在项目的早期阶段,我在网上搜索了很多,但没有找到满意的答案。但是现在我有了额外的时间,而且我的项目也不是很大,我想把它做好。有提示吗?

坦克,雷

在类之间共享数据集

试着回答一个非常通用的问题:阅读你写的东西,我会说这是一个很好的解决方案,使一个类的公共属性,你想在应用程序的不同部分访问。唯一的提示,我能想到的(只是因为它没有指定,这并不意味着它不是这样做的)有一个数据集在你的专门的数据访问类。

重复一遍,这个问题太笼统了。也许如果你说得更详细,你会得到更具体的帮助。

问候。

创建dataSet作为属性,使用get, set accessor。您可以将其设置为静态,这样就可以在不创建类(或表单)新引用的情况下使用它。

的例子:

public partial class Form1 : Form
{
    public static DataSet myDataSet { get; set; }
    public Form1()
    {
        InitializeComponent();
        Class1 c1 = new Class1();
        Class2 c2 = new Class2();
    }
}
class Class1
{
    public Class1()
    {      
        //fill dataSet (add new table and some example rows):
        DataTable table = new DataTable("table1");
        table.Columns.Add("Column1", typeof(string));
        table.Rows.Add("item 1");
        table.Rows.Add("item 2");
        Form1.myDataSet = new DataSet();
        Form1.myDataSet.Tables.Add(table);
    }
}
class Class2
{
    public Class2()
    {
        //show dataSet results:
        StringBuilder sb = new StringBuilder();
        foreach (DataRow dr in Form1.myDataSet.Tables["table1"].Rows)
        {
            sb.AppendLine(dr[0].ToString());
        }
        //show:
        System.Windows.Forms.MessageBox.Show(sb.ToString());
    }
}