Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c语言中调用oracle存储过程#_Oracle_C# 4.0_Stored Procedures - Fatal编程技术网

在c语言中调用oracle存储过程#

在c语言中调用oracle存储过程#,oracle,c#-4.0,stored-procedures,Oracle,C# 4.0,Stored Procedures,我试图用c#调用一个oracle存储过程,如下所示 OdbcDataAdapter da = new OdbcDataAdapter(); da.SelectCommand = new OdbcCommand(); da.SelectCommand.Connection = con; da.SelectCommand.Connection.Open(); da.SelectCommand.Comma

我试图用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

请任何人都能说出我到底错过了什么来调用这个程序。请帮忙

您可以尝试反转这些语句:

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

我希望这能有所帮助。

YES
KAMRAN
是模式,
ATTN
是过程名称可能与YES-Threaded重复,但同样的错误请参见(但也没有解决)