F
fanor
Hi guys,
I have 2 data adapters da1 and da2, 1 connection con1, and one data set
ds1. I use the same connection for all this data adapters.
when I change from one record to other on the table JOBS under da1 it
trigger one event. In this event, I have a code like
System.Windows.Forms.BindingManagerBase bc;
bc = this.BindingContext[this.ds1, "jobs"];
this.ds1.WorkEmp.Clear();
if (bc.Count>0)
{
System.Data.DataRow drv;
drv = this.ds1.jobs.Rows[bc.Position];
this.daWorkEmp.SelectCommand.Parameters["njob"].Value=Convert.ToInt16(drv["njob"]);
try
{
this.daWorkEmp.Fill(this.ds1.WorkEmp); // ERROR HAPPENS HERE
}
catch (Exception e3)
{
MessageBox.Show(e3.ToString());
return ;
}
}
I got this error message
"System.invalidOperationException: there is already an open DataReader
associated with this connection which must closed first"
WorkEmp.SelectCommand is a like
SELECT b.firstname, b.lastname, a.empid, a.njob, b.empid AS Expr1 FROM
WorkOn a INNER JOIN employee b ON a.empid = b.empid WHERE (a.njob = ?)
I'm missing something???
I use the same logic in other modules with other tables and it works.
I appreciate any help, thanks
I have 2 data adapters da1 and da2, 1 connection con1, and one data set
ds1. I use the same connection for all this data adapters.
when I change from one record to other on the table JOBS under da1 it
trigger one event. In this event, I have a code like
System.Windows.Forms.BindingManagerBase bc;
bc = this.BindingContext[this.ds1, "jobs"];
this.ds1.WorkEmp.Clear();
if (bc.Count>0)
{
System.Data.DataRow drv;
drv = this.ds1.jobs.Rows[bc.Position];
this.daWorkEmp.SelectCommand.Parameters["njob"].Value=Convert.ToInt16(drv["njob"]);
try
{
this.daWorkEmp.Fill(this.ds1.WorkEmp); // ERROR HAPPENS HERE
}
catch (Exception e3)
{
MessageBox.Show(e3.ToString());
return ;
}
}
I got this error message
"System.invalidOperationException: there is already an open DataReader
associated with this connection which must closed first"
WorkEmp.SelectCommand is a like
SELECT b.firstname, b.lastname, a.empid, a.njob, b.empid AS Expr1 FROM
WorkOn a INNER JOIN employee b ON a.empid = b.empid WHERE (a.njob = ?)
I'm missing something???
I use the same logic in other modules with other tables and it works.
I appreciate any help, thanks