Well, you have several conceptual options. You seem to be thinking of giving access to the data set to the child form, which is certainly something that you could do, but in my eyes it would make sense for the child form to provide the information for a single record to the parent form. The child form doesn't need to know anything about the dataset, or all of the other records.
In general you should try to limit information so that it is only avaliable where it is needed; you'll reduce the possibility of bugs that way. It would be bad practice to just make the dataset a global variable, which is what making it public and static is doing. By doing that not only are you providing the entire set of data to the child form (and also letting it be modfied) but your letting the data be read or modified from anywhere in the entire program. That's just asking for trouble.
The general idea will likely look something like this:
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"; } }
}