Labor Detail Role code set by OprSeq

We have a few Jobs that are setup without any Projects tied to them. When these are filled out, the Role code does not get assigned to the detail record. I have created a method to get the job data and I am using the JobOperSearchAdapter to find the role code and assign it to the role code field. During debugging the role code shows up in the combo box, then when the record updates, it changes to “None selected”. Can anyone help me get this to populate the value before and after the record updates? Here is the code:

JobOperSearchAdapter _adJobOpr = new JobOperSearchAdapter(oTrans);
ProjPhaseSearchAdapter _adProjPhase = new ProjPhaseSearchAdapter(oTrans);
SearchOptions _opts = new SearchOptions(SearchMode.AutoSearch);
Ice.Lib.Framework.EpiTextBox tJob = ((Ice.Lib.Framework.EpiTextBox)csm.GetNativeControlReference(""));
string sJob = Convert.ToString(tJob.Text);

	   Erp.UI.Controls.Combos.JobAsmSearchCombo tAsm = ((Erp.UI.Controls.Combos.JobAsmSearchCombo)csm.GetNativeControlReference("<Guid removed>"));
	   EpiDataView edvJobAsm  = (EpiDataView)oTrans.EpiDataViews["LaborDtl"];
	   string sRoleCode = Convert.ToString(edvJobAsm.dataView[edvJobAsm.Row]["RoleCd"]);	
	   string sAsm = Convert.ToString(edvJobAsm.dataView[edvJobAsm.Row]["AssemblySeq"] ); 
	   string sOp = Convert.ToString(edvJobAsm.dataView[edvJobAsm.Row]["OprSeq"] );
	   string sProjID = Convert.ToString(edvJobAsm.dataView[edvJobAsm.Row]["ProjectID"]);
	   string sProjPhaseID = Convert.ToString(edvJobAsm.dataView[edvJobAsm.Row]["PhaseID"]);
       bool _MorePages = false;
		string _WhereClause = "JobNum = '" + sJob + "' AND AssemblySeq = '" + sAsm + "' AND OprSeq = '" + sOp + "'"; 
       try
       {
		_adJobOpr.BOConnect();
			

		  _opts.NamedSearch.WhereClauses.Add("JobOper", _WhereClause);
      	System.Data.DataSet _dsResults = _adJobOpr.GetRows(_opts, out _MorePages);

       if (_dsResults.Tables["JobOper"].Rows.Count == 0)  
         {
              MessageBox.Show("No Records");
          }
          else
         {
            foreach (DataRow _dr in _dsResults.Tables["JobOper"].Rows)
             {
                string _UOM = _dr["UOM_c"].ToString();
				
				string _rolecode = _dr["PrjRoleList"].ToString();
				string _OperationType = _dr["OperationType_c"].ToString();
				decimal _ProductionCeiling = Convert.ToDecimal(_dr["ProductionCeiling_c"]);
				bool _RequiredUnits = Convert.ToBoolean(_dr["RequiredUnits_c"]);
				this.txtUOM.Text = "";
				this.txtOperationType.Text = "";
				this.nbProdCeiling.Value = 0.00m;
				this.txtTestUnitNumber.Text = "";
				this.cbReqUnits.Checked = false;
				
				if (_UOM !="")
                this.txtUOM.Text = _UOM;
				edvJobAsm.dataView[edvJobAsm.Row].BeginEdit();
				edvJobAsm.dataView[edvJobAsm.Row]["RoleCd"] = _rolecode;
				edvJobAsm.dataView[edvJobAsm.Row]["UOM_c"]=_UOM;
				if (_OperationType != "")
				{this.txtOperationType.Text = _OperationType;
				 edvJobAsm.dataView[edvJobAsm.Row]["OperationType_c"]=_OperationType;
				}
				
				if (_ProductionCeiling != 0.00m)
				{this.nbProdCeiling.Value = _ProductionCeiling;
				
				}
				this.cbReqUnits.Checked = _RequiredUnits;
				if (_RequiredUnits)
				edvJobAsm.dataView[edvJobAsm.Row]["RequiredUnits_c"]=_RequiredUnits;
				edvJobAsm.dataView[edvJobAsm.Row].EndEdit();
				
				
				
             }
          }
        }
                            catch (Exception ex)
                            {
                                            MessageBox.Show(ex.Message.ToString());
                            }
                            finally
                            {
                                            _adJobOpr.Dispose();
                            }