I found Adding Products to an Opportunity to not be a straight forward process, and the Help file provided little guidance. This is a partial code sample that works. I hope this saves someone the hours I spent completing this seemingly simple task. Sorry about the formatting. Pasting loses the indenting for some reason.
ActFwk is a connected instantiation of the Act Framework. SqDetail is a RecordSet.
int itemCountTotal = SqDetail.Rows.Count;
OpportunityProduct newProds = new OpportunityProduct[itemCountTotal];
int itemCtr = 0;
foreach (DataRow drSqDetail in SqDetail.Rows)
THE CODE HERE JUST FILLED IN THE VARIABLES USED BELOW