帮我分析这段代码 C#

来源:百度知道 编辑:UC知道 时间:2024/06/17 21:20:34
private OracleDataAdapter CreateDataAdaper(string procName, OracleParameter[] prams)
{
this.Open();
OracleDataAdapter dap = new OracleDataAdapter(procName, con);
dap.SelectCommand.CommandType = CommandType.Text; //执行类型:命令文本
if (prams != null)
{
foreach (OracleParameter parameter in prams)
dap.SelectCommand.Parameters.Add(parameter);
}
//加入返回参数
dap.SelectCommand.Parameters.Add(
new OracleParameter("ReturnValue", OracleType.Int32,8,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
return dap;
}
提问,1,这段代码是否有细节上的错误?最后那句“加入返回参数”怎么理解?这句的语法对吗?
2,OracleParameter与 SQLParameter在细节上有区别吗?
在执行OracleDataAdapter dap = CreateDataAdaper(procName, null);
DataSet ds = new DataSet();
dap.Fill(ds, tbName);<

1 看你参数为procName 是不是用的存贮过程啊?如果是 那么CommandType.Text应该改为CommandType.StoredProcedure
2 加入返回参数 是取得存储过程的OUT参数用的
比如
Create Proc
@a int OUTPUT
set @a=1

那么执行这个存储过程 参数@a的值将会是1

执行存储过程,和所要的类型参数
你定义了一个OracleDataAdapter的方法。所以要返回一个同样类型的参数。
OracleParameter与 SQLParameter没什么区别。

数据库字段类型上的不一样吧。