C# 多表单C上的共享数据集#

C# 多表单C上的共享数据集#,c#,dataset,C#,Dataset,所以我在做一个数据库项目,在我的第一个表单中,我有一个sql连接命令,它可以访问我的数据源。我还创建了一个数据集这都是我的显示格式 displayform用于显示数据库,我添加了一个按钮来添加记录,因此当我单击add records时,它将转到addform,在那里我可以填写创建新联系人的详细信息。然后返回到第一个表单以显示新创建的联系人和所有其他联系人 但是,我有一点问题,因为数据集需要与显示表单中的数据集相同 如何使所有表单的数据集都相同 更新: 所以我所做的是在我的程序中。我在那里创建了对

所以我在做一个数据库项目,在我的第一个表单中,我有一个sql连接命令,它可以访问我的数据源。我还创建了一个数据集这都是我的显示格式

displayform用于显示数据库,我添加了一个按钮来添加记录,因此当我单击add records时,它将转到addform,在那里我可以填写创建新联系人的详细信息。然后返回到第一个表单以显示新创建的联系人和所有其他联系人

但是,我有一点问题,因为数据集需要与显示表单中的数据集相同

如何使所有表单的数据集都相同

更新:

所以我所做的是在我的程序中。我在那里创建了对象。。。并将其公开

public static DataSet ds = new DataSet();
所以在我的addcontact表格中我可以这样称呼它

Program.ds.Clear();

与我的DataAdapter/bindingsource和sql连接相同。这样可以吗?

嗯,您有几个概念上的选择。您似乎在考虑将数据集的访问权授予子窗体,这当然是您可以做到的,但在我看来,子窗体向父窗体提供单个记录的信息是有意义的。子窗体不需要知道有关数据集或所有其他记录的任何信息

一般来说,您应该尽量限制信息,使其仅在需要时可用;这样可以减少出现bug的可能性。仅仅将数据集设置为全局变量是一种不好的做法,而将其设置为公共和静态就是这样做的。这样做不仅可以将整个数据集提供给子窗体(并且可以对其进行修改),还可以从整个程序的任何位置读取或修改数据。那只是自找麻烦

总体思路可能如下所示:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        Form2 childForm = new Form2();
        childForm.ShowDialog();
        string name = childForm.Name;
        string value = childForm.SomeOtherValue;
        //you can stick these properties in your dataset here.
    }
}

public partial class Form2 : Form
{
    private TextBox textbox1;
    public Form2()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Close();
    }

    public string Name { get { return textbox1.Text; } }
    public string SomeOtherValue { get { return "12345"; } }
}

嗯,你有几个概念上的选择。您似乎在考虑将数据集的访问权授予子窗体,这当然是您可以做到的,但在我看来,子窗体向父窗体提供单个记录的信息是有意义的。子窗体不需要知道有关数据集或所有其他记录的任何信息

一般来说,您应该尽量限制信息,使其仅在需要时可用;这样可以减少出现bug的可能性。仅仅将数据集设置为全局变量是一种不好的做法,而将其设置为公共和静态就是这样做的。这样做不仅可以将整个数据集提供给子窗体(并且可以对其进行修改),还可以从整个程序的任何位置读取或修改数据。那只是自找麻烦

总体思路可能如下所示:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        Form2 childForm = new Form2();
        childForm.ShowDialog();
        string name = childForm.Name;
        string value = childForm.SomeOtherValue;
        //you can stick these properties in your dataset here.
    }
}

public partial class Form2 : Form
{
    private TextBox textbox1;
    public Form2()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Close();
    }

    public string Name { get { return textbox1.Text; } }
    public string SomeOtherValue { get { return "12345"; } }
}

通过构造函数创建一个dataset类外接传递到每个表单。。 “Class=Class”表示引用。。没有复印件。(数据集是一个类…)


通过构造函数创建一个dataset类外接传递到每个表单。。 “Class=Class”表示引用。。没有复印件。(数据集是一个类…)


这不是我的家庭作业。