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#