Passing Dataset to another WinForm

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Hi,

I need to pass a dataset to another win form along with a SqldataAdapter.
I don't want to recreate the SqlDataAdapter again either. So to pass to
another Win form in my windows form app, do I create the procedure to pass by
ref? Which means I don't need to add ByRef because it is defaulted by ref,
correct? And in the constructor of the win form that gets created. I need to
add in parameters a DataSet and SqlDataAdapter correct? What is the standard
way of passing datasets around window forms?

Thanks,

JJ
 
On your destination form you need to have a DataSet variable which
references a DataSet object. From here you need to provide a public property
that allows you to set and get the object reference by this variable. Once
this is complete, the source form which contains the DataSet to use creates
the new form, then assigns the dataset to the property. You can then utilise
this DataSet in the new form in the load event.

Your code would look something like this...

// destination form

private DataSet _myDS;
public DataSet MyDS
{
get
{
return _myDS;
}
set
{
// does not create a new dataset,
// but gives the variable a reference to
// the dataset assigned to MyDS
_myDS = value;
}
}


// source form (before displaying/creating the new form)
// - code assumes you have your dataset ready

destForm = new Form();
destForm.MyDS = readyDataSet;
destForm.ShowDialog();



Hope that helps.
Dan.
 
Hi Dan,

On the destination form I created in the constructor a parameter to
accept a dataset instead. Then in constructor I copy dataset to private
dataset variable like so:

private DataSet dsNew;

DstForm(DataSet ds)
{
dsNew = ds.Copy();
}

Wouldn't this work too?

Thanks,

JJ
 
JJ,

This would work, but it depends on what you want to do. Creating a copy
means any changes made to the dataset stay within the form... If you just
say "dsNew = ds; " then the reference to the object is passed through, and
your second form is utilising the orginal object.

So it depends on what your requirements are.

Dan.
 
Back
Top