Note that there are some explanatory texts on larger screens.

plurals
  1. POOracledataadaptor Fillschema doesnot work with novalidate table constraint
    primarykey
    data
    text
    <p>I am using ODP.net for updating a table with C# winform. I get Dynamic SQL error if my oracle table constraint has novalidate. If I do not have that the delete/edit works fine. </p> <p>Please tell how to fix this issue other than below options 1. setting primarykey manually in the code since the code is generic. 2. Remove novalidate within constarint in oracle table.</p> <hr> <p>Oracle table constarint: </p> <pre><code>ALTER TABLE "table1" ADD CONSTRAINT "PK_table1" PRIMARY KEY ("EMP_ID") ENABLE NOVALIDATE; </code></pre> <p>C# code:</p> <pre><code>using Oracle.DataAccess.Client; public partial class Form1 : Form { OracleConnection OraConn; OracleDataAdapter FOraDataAdapt; DataTable OraDataTable; BindingSource FBindSource; int RecNo; public Form1() { InitializeComponent(); OraConn = new OracleConnection("Data Source=ORCL1;User Id=123;Password=123;"); } private void btnConnect_Click(object sender, EventArgs e) { try { OraConn.Open(); OracleCommand FOraCommand = new OracleCommand("select * from table1", OraConn); FOraDataAdapt = new OracleDataAdapter(FOraCommand); OracleCommandBuilder FOraCommandBuilder = new OracleCommandBuilder(FOraDataAdapt); OraDataTable = new DataTable(); DataTable TableSchema = new DataTable(); FOraDataAdapt.Fill(OraDataTable); FOraDataAdapt.FillSchema(TableSchema, System.Data.SchemaType.Source); FBindSource = new BindingSource(); FBindSource.DataSource = OraDataTable; grdView.DataSource = FBindSource; } catch (Exception Exp) { MessageBox.Show(Exp.Message); } } private void btnDelete_Click(object sender, EventArgs e) { try { RecNo = FBindSource.Position; FBindSource.RemoveAt(RecNo); FOraDataAdapt.Update(OraDataTable); OraDataTable.Rows[RecNo].AcceptChanges(); } catch (Exception Exp) { MessageBox.Show(Exp.Message); } } private void btnModify_Click(object sender, EventArgs e) { RecNo = FBindSource.Position; OraDataTable.Rows[RecNo].BeginEdit(); } private void btnPost_Click(object sender, EventArgs e) { try { FBindSource.EndEdit(); FOraDataAdapt.Update(OraDataTable); OraDataTable.Rows[RecNo].AcceptChanges(); } catch (Exception Exp) { MessageBox.Show(Exp.Message); } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload