我的无能迫使我在我的项目中使用不“干净”的解决方案。我在一个类中得到了一个ADO数据集,需要在winforms和其他classess之间共享它。为了实现它,我将数据集作为公共成员。当我在项目的早期阶段,我在互联网上搜索了很多,但没有找到满意的答案。但是现在我有了一些额外的时间,而我的项目并不大,我想做得对。任何提示?
坦克, 射线
答案 0 :(得分:1)
尝试回答非常普遍的问题:阅读你所写的内容,我会说这是一个非常好的解决方案,可以创建一个类的公共属性,你需要在app的不同部分使用acees。我能想到的唯一提示(仅因为它没有指定,这并不意味着它没有以这种方式完成)在您的专用数据访问类中有一个DataSet。
重复一遍,这个问题过于笼统。如果你把更详细的东西分开,你可能会得到更多关于主题的具体帮助。
问候。
答案 1 :(得分:0)
使用get,set accessor将dataSet创建为属性。你可以将它设置为静态,因此它可以在不创建类(或表单)新引用的情况下使用。
示例:
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());
}
}