在c语言中调用oracle存储过程#
我试图用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
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重复,但同样的错误请参见(但也没有解决)