Quiero insertar un nuevo registro en una base de datos de la siguiente forma:
OracleConnection oc = new OracleConnection();
oc.ConnectionString = @ConfigurationSettings.AppSettings["connectionString"];
oc.Open();
NwHistAdapter = new OracleDataAdapter("select * from SUBJECT_HISTORY us where us.SUBJECT_ID =" + strParent ,oc);
histCmdBuilder = new OracleCommandBuilder(NwHistAdapter);
histDataSet = new DataSet("histDataSet");
NwHistAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
NwHistAdapter.Fill(histDataSet, "SUBJECT_HISTORY");
DataRow dtrNewHist = histDataSet.Tables["SUBJECT_HISTORY"].NewRow();
dtrNewHist["SUBJECT_ID"]=strParent.ToString();
dtrNewHist["HISTORY_DATE"]=DateTime.Now;
dtrNewHist["DESCRIPTION"]=txtDescription.Text;
dtrNewHist["SUB_USER_ID"]=1;
dtrNewHist["LAST_CONTACT_DAY"]=txtLast.Text;
dtrNewHist["NEXT_ACTION_DATE"]=txtNext.Text;
dtrNewHist["ACTION_ID"]=txtNext_action.Text;
dtrNewHist["EFFECT_ID"]="24";
dtrNewHist["DURATION"]=12;
dtrNewHist["SUB_CONTACT_ID"]=strId;
dtrNewHist["SERVICE_ID"]=txtService.Text;
histDataSet.Tables["SUBJECT_HISTORY"].Rows.Add(dtrNewHist);
histDataSet.AcceptChanges();
NwHistAdapter.Update(histDataSet,"SUBJECT_HISTORY" );
Pero me aparece el siguiente error:
Server Error in '/EasySales' Application.Según lo que he leido tiene que ver con las llaves que estan contenidas en las otras tablas.
--------------------------------------------------------------------------------
ORA-02291: integrity constraint (ECMV2.SERVICE_CUSTOMER_HISTORY_FK1) violated - parent key not found
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: Oracle.DataAccess.Client.OracleException: ORA-02291: integrity constraint (ECMV2.SERVICE_CUSTOMER_HISTORY_FK1) violated - parent key not found
Source Error:
Line 158: histDataSet.Tables["SUBJECT_HISTORY"].Rows.Add(dtrNewHist);
Line 159: //histDataSet.AcceptChanges();
Line 160: NwHistAdapter.Update(histDataSet,"SUBJECT_HISTORY" );
Line 161:
Line 162:
Source File: e:\easysales\easysales\wfnewhistory.aspx.cs Line: 160
Stack Trace:
[OracleException: ORA-02291: integrity constraint (ECMV2.SERVICE_CUSTOMER_HISTORY_FK1) violated - parent key not found]
System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping) +1667
Oracle.DataAccess.Client.OracleDataAdapter.Update( DataRow[] dataRows, DataTableMapping tableMapping) +9
System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String srcTable) +152
EasySales.WFSaveHistory.salvar(String strId, String strParent) in e:\easysales\easysales\wfnewhistory.aspx.cs:160
EasySales.WFSaveHistory.btnSave_Click(Object sender, EventArgs e) in e:\easysales\easysales\wfnewhistory.aspx.cs:97
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPo stBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1277
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:1.1.4322.573; ASP.NET Version:1.1.4322.573
¿Me equivoco? , alguien puede ayudarme porfavor , aunque tenga que hacerlo on un INSERT INTO en vez del OracleCommandBuilder?