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