C#中使用参数调用Oracle存储过程问题——一个非常低级的错误

来源:互联网 发布:手机文档扫描软件 编辑:程序博客网 时间:2024/05/16 19:04
有存储过程:SP_PUB_ID
(New_ID in int)
 as
begin
 null;
end;
前台调用:
        private void button1_Click_1(object sender, EventArgs e)
        {
            string sqlGetCode="SP_PUB_ID";
            OracleConnection oraCon = new OracleConnection(your Connect String);
            OracleCommand oraCmd = new OracleCommand();
            oraCmd.Connection = oraCon;
            oraCmd.CommandType = CommandType.StoredProcedure;
            oraCmd.CommandText = sqlGetCode;
 
           OracleParameter tt = new OracleParameter();
            tt.ParameterName = "NewID";
            tt.OracleType = OracleType.Int32;
            tt.Direction = ParameterDirection.Input;
            tt.Value = 1;
            oraCmd.Parameters.Add(tt);
            try
            {
                oraCon.Open();
                oraCmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            ps.oraCon.Close();
        }
错误提示:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'SP_PUB_ID'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

你能看到问题在哪么? 

 

 

 

 

 

    由于自己很久以前只在VB.Net中对于SqlServer的用过一两次,现在第一次在Oracle中用,很是生疏,而且根据以前的经验,同样的写法可能不适用。错误提示又不明显,总是怀疑是不是程序方法有问题,那天下午又比较昏,我又喜欢自己独立解决,不喜欢轻易问人,调试了半天也没有用,实在没办法问同事,也都没有这样用过,但是没有请他们看程序。后来就上网问,结果一问就有人发现问题了,就是参数名写错了。大骂自己混蛋,白痴!这样低级的错误都没发现,还浪费了大半天的时间。

原创粉丝点击