0

我正在尝试像这样在 c# 中调用 oracle 存储过程

 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";

但我显示这个错误

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

请任何人都可以告诉我到底缺少什么来调用这个程序。请帮助!

4

1 回答 1

0

您可以尝试颠倒这些陈述:

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

另外,也许尝试添加:

da.SelectCommand.Parameters.Clear();

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

我认为您还应该使用 DataTable

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

也许它也应该是一个 Oracle 数据适配器:

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

所以你应该有:

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();

我希望这会有所帮助。

于 2014-10-02T07:14:52.213 回答