当前位置:编程学习 > C#/ASP.NET >>

C# oracle存储过程(返回一个数据集)出错

可以保证oracle包中的代码是正确的!!
有下面的方法可得到正确的结果 
            //OracleConnection conn = new OracleConnection(strConn);
            //OracleCommand cmd = new OracleCommand();
            //cmd.Connection = conn;
            //cmd.CommandText = "PKG_SELECT_STUDENT.GetStudent_toage";//包PKG_SELECT_STUDETN下面的Getusername的存储过程
            //cmd.CommandType = CommandType.StoredProcedure;

            //cmd.Parameters.Add("us_age", OracleType.Int16, 10).Value = int.Parse(textBox3.Text.Trim());//添加参数
            //cmd.Parameters.Add("cur_someName", OracleType.Cursor);
            //cmd.Parameters["cur_someName"].Direction = ParameterDirection.Output;
            //cmd.Parameters["us_age"].Direction = ParameterDirection.Input;

            //OracleDataAdapter adp = new OracleDataAdapter(cmd);
            //DataSet ds = new DataSet();
            //adp.Fill(ds);
            //dataGridView1.DataSource = ds.Tables[0].DefaultView; //绑定

但是用下面的方法就不行了!!
出现这样的错误:
OracleParameterCollection 只接受非空的 OracleParameter 类型对象,不接受 OracleParameter[] 对象。
这是为 什么??当我写到一个数组里面时,提示有一个为空的值,param〔0〕可以自己输入,param〔1〕是一个游标,可以没有值啊!!
请指教!!   
           OracleParameter[] param = new OracleParameter[2];
            param[0] = new OracleParameter("us_age", OracleType.Int16, 5);
            param[1] = new OracleParameter("cur_someName", OracleType.Cursor);
            
            param[0].Value = int.Parse(textBox3.Text.Trim());
            
            param[0].Direction = ParameterDirection.Input;
            param[1].Direction = ParameterDirection.Output;

            OracleConnection conn = new OracleConnection(strConn);
            OracleCommand cmd = new OracleCommand();
            cmd.Connection = conn;
            cmd.CommandText = "PKG_SELECT_STUDENT.GetStudent_toage";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(param);

            OracleDataAdapter adp = new OracleDataAdapter(cmd);
            DataSet ds = new DataSet();
            adp.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0].DefaultView; 
--------------------编程问答-------------------- 那你这问题是咋解决的啊 --------------------编程问答-------------------- cmd.Parameters.Add 看看这句OracleCommand函数的重载
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,