【问题标题】:calling oracle stored procedure in c#在c#中调用oracle存储过程
【发布时间】: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

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

【问题讨论】:

标签: oracle c#-4.0 stored-procedures


【解决方案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();

我希望这对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 2012-06-24
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多