I am executing below function within my c# program
CREATE OR REPLACE FUNCTION F_INSERT_ORDER_DATA ( P_CUSTOMER_ID IN NUMBER,
P_NOTES IN VARCHAR2,
P_CREATED_BY IN VARCHAR2)
RETURN NUMBER
IS
vCREATED_ON DATE := SYSDATE;
vORDER_ID NUMBER;
BEGIN
INSERT INTO orders ( ORDER_ID,
CUSTOMER_ID,
NOTES,
CREATED_BY,
CREATED_ON)
VALUES ( NULL, --ORDER_ID Filled by trigger
P_CUSTOMER_ID, --CUSTOMER_ID
P_NOTES, --NOTES
P_CREATED_BY, --CREATED_BY
vCREATED_ON) --CREATED_ON
RETURNING ORDER_ID INTO vORDER_ID;
RETURN (vORDER_ID);
END;
but I am getting error that I cant insert null into CUSTOMER_ID column so the error is by passing parameters from c# to oracle function I need someone to help my by passing parameters ?
private void B_Insert_Click(object sender, EventArgs e)
{
if (PaidCash < TotalInv)
{
MessageBox.Show("paid amount less than cost", "be careful", MessageBoxButtons.OK, MessageBoxIcon.Warning);
TB_PAID_CASH.BackColor = Color.Tomato;
TB_PAID_CASH.Focus();
return;
}
else if (Reminder < 0)
{
MessageBox.Show("zero value", "be careful", MessageBoxButtons.OK, MessageBoxIcon.Warning);
TB_Discount.BackColor = Color.Tomato;
TB_Discount.Focus();
return;
}
else
{
Form_control("DataInserted");
string connstr = @"Data Source=orcl; User Id=admin; password=123123;";
string insertcmdtxt = @"F_INSERT_ORDER_DATA"; //~ F_INSERT_ORDER_DATA ~//
using (OracleConnection conn = new OracleConnection(connstr))
using (OracleCommand cmd = new OracleCommand(insertcmdtxt, conn))
{
try
{
conn.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = insertcmdtxt;
cmd.Parameters.Add(new OracleParameter("P_CUSTOMER_ID",TB_CUSTOMER_ID.Text ));
cmd.Parameters.Add(new OracleParameter("P_NOTES", null));
cmd.Parameters.Add(new OracleParameter("P_CREATED_BY", "System"));
cmd.Parameters.Add(":vORDER_ID", OracleDbType.Int64, ParameterDirection.ReturnValue);
cmd.ExecuteNonQuery();
TB_INVOICE_ID.Text = (cmd.Parameters[":vORDER_ID"].Value).ToString();
}
catch (Exception EX)
{
MessageBox.Show(EX.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
}
}