在类之间共享数据集
本文关键字:数据集 共享 之间 | 更新日期: 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());
}
}