Help with Error - ( UPDATE DataTable ) does not make sense to me.

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

Guest

I have just 1 table that I am updating, the SQL I use to generate the
DataTable is complex using multiple tables, however when I view the
fieldnames of the DataTable from the DataSet - everything matches: What dont
I understand here:
( The error I get is : Dynamic SQL generation is not supported against
multiple base tables ). But My DataSet is 1 Table, and my target is 1 table,
Why the error ??
Thanks :
try
{
staticSQLConn.Open();
System.Data.SqlClient.SqlDataAdapter daAdapter = new
SqlDataAdapter(sSQL, staticSQLConn);
daAdapter.AcceptChangesDuringFill = false;
daAdapter.Fill(ds, srcTable); // all entries will be
flagged new

if (ds.HasChanges())
{
rowsToInsert = ds.Tables[srcTable].Rows.Count;
SqlCommandBuilder Cb = new SqlCommandBuilder(daAdapter);
Cb.GetInsertCommand();
DataTable dt = ds.Tables[srcTable];
retVal = daAdapter.Update(dt); // ERROR

}
 
Actually I have an answer, close the existing adapter that made the complex
query and then reopen a new adapter with Select * from source table as
follows:

if (ds.HasChanges())
{
rowsToInsert = ds.Tables[srcTable].Rows.Count;
DataTable dt = ds.Tables[srcTable];
daAdapter.Dispose();
System.Data.SqlClient.SqlDataAdapter daAdapter2 = new
SqlDataAdapter("Select * from " + srcTable, staticSQLConn);
SqlCommandBuilder Cb = new SqlCommandBuilder(daAdapter2);
Cb.GetInsertCommand();
retVal = daAdapter2.Update(dt);

}
 
Back
Top