在c#中调用oracle存储过程
Posted
技术标签:
【中文标题】在c#中调用oracle存储过程【英文标题】:calling oracle stored procedure in c# 【发布时间】:2013-05-03 10:57:12 【问题描述】:我正在尝试像这样在 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
请任何人告诉我到底缺少什么来调用这个程序。请帮助!
【问题讨论】:
YESKAMRAN
IS SCHEMA AND ATTN
IS PROCEDURE NAME
Calling Oracle stored procedure from C#.net?的可能重复
YES 试过但同样的错误
另见***.com/questions/4174968/…(但这也没有解决)
【参考方案1】:
您可以尝试颠倒这些陈述:
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();
我希望这对您有所帮助。
【讨论】:
以上是关于在c#中调用oracle存储过程的主要内容,如果未能解决你的问题,请参考以下文章