0

I am trying to call a oracle stored procedure in c# like this

 OdbcDataAdapter da = new OdbcDataAdapter();
            da.SelectCommand = new OdbcCommand();
            da.SelectCommand.Connection = con;
            da.SelectCommand.Connection.Open();
            da.SelectCommand.CommandText = "KAMRAN.ATTN";
            da.SelectCommand.CommandType = CommandType.StoredProcedure;

            da.SelectCommand.ExecuteNonQuery();
            da.SelectCommand.Connection.Close();

            Label3.Text = "Attendance Posted Successfully";

But I am showing this error

ERROR [42000] [Oracle][ODBC][Ora]ORA-00900: invalid SQL statement

Please any One Can tell what exactly i am missing to call this procedure.plz help !

Adeel Aslam
  • 1,285
  • 10
  • 36
  • 69

1 Answers1

0

You could try to inverse the statements:

da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.CommandText = "KAMRAN.ATTN";

Also, maybe try to add:

da.SelectCommand.Parameters.Clear();

before

da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.CommandText = "KAMRAN.ATTN";

I think that you should also use a DataTable

                DataTable dt = new DataTable();
                da.Fill(dt);
                return dt;

Maybe that it should also be an Oracle Data Adapter:

OracleDataAdapter da = new OracleDataAdapter();
da.SelectCommand = new OracleCommand();

So you should have:

OracleDataAdapter da = new OracleDataAdapter();
da.SelectCommand = new OracleCommand();
da.SelectCommand.Connection = con;
da.SelectCommand.Connection.Open();
da.SelectCommand.Parameters.Clear();
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.CommandText = "KAMRAN.ATTN";


DataTable dt = new DataTable();
da.Fill(dt);
return dt;
da.SelectCommand.Connection.Close();

I hope this helps in any way.